Lines Matching full:irq

10 #include <irq-generic.h>
11 #include "irq-internal.h"
35 int bad_irq(int irq) in bad_irq() argument
42 if (irq < PLATFORM_MAX_IRQ) { in bad_irq()
43 if (!irq_desc[irq].handle_irq) in bad_irq()
46 if (bad_virq(irq)) { in bad_irq()
47 IRQ_E("Unknown virq: %d\n", irq); in bad_irq()
56 void __generic_gpio_handle_irq(int irq) in __generic_gpio_handle_irq() argument
58 if (bad_irq(irq)) in __generic_gpio_handle_irq()
61 if (irq < PLATFORM_GIC_MAX_IRQ) { in __generic_gpio_handle_irq()
62 IRQ_W("IRQ %d: Invalid GPIO irq\n", irq); in __generic_gpio_handle_irq()
66 if (irq_desc[irq].handle_irq) { in __generic_gpio_handle_irq()
67 irq_desc[irq].count++; in __generic_gpio_handle_irq()
68 irq_desc[irq].handle_irq(irq, irq_desc[irq].data); in __generic_gpio_handle_irq()
74 u32 irq; in __do_generic_irq_handler() local
79 irq = irqchip.gic->irq_get(); in __do_generic_irq_handler()
81 if (irq < PLATFORM_GIC_MAX_IRQ) { in __do_generic_irq_handler()
82 if (irq_desc[irq].handle_irq) { in __do_generic_irq_handler()
83 irq_desc[irq].count++; in __do_generic_irq_handler()
84 irq_desc[irq].handle_irq(irq, irq_desc[irq].data); in __do_generic_irq_handler()
88 irqchip.gic->irq_eoi(irq); in __do_generic_irq_handler()
91 int irq_is_busy(int irq) in irq_is_busy() argument
93 return (irq >= 0 && irq_desc[irq].handle_irq) ? -EBUSY : 0; in irq_is_busy()
114 * request irq for gpio banks. in __do_arch_irq_init()
163 int irq_handler_enable(int irq) in irq_handler_enable() argument
167 if (bad_irq(irq)) in irq_handler_enable()
170 if (irq < PLATFORM_GIC_MAX_IRQ) in irq_handler_enable()
171 ret = irqchip.gic->irq_enable(irq); in irq_handler_enable()
172 else if (irq < PLATFORM_GPIO_MAX_IRQ) in irq_handler_enable()
173 ret = irqchip.gpio->irq_enable(irq); in irq_handler_enable()
175 ret = irqchip.virq->irq_enable(irq); in irq_handler_enable()
177 if (!ret && irq < PLATFORM_MAX_IRQ) in irq_handler_enable()
178 irq_desc[irq].flag |= IRQ_FLG_ENABLE; in irq_handler_enable()
183 int irq_handler_disable(int irq) in irq_handler_disable() argument
187 if (bad_irq(irq)) in irq_handler_disable()
190 if (irq < PLATFORM_GIC_MAX_IRQ) in irq_handler_disable()
191 ret = irqchip.gic->irq_disable(irq); in irq_handler_disable()
192 else if (irq < PLATFORM_GPIO_MAX_IRQ) in irq_handler_disable()
193 ret = irqchip.gpio->irq_disable(irq); in irq_handler_disable()
195 ret = irqchip.virq->irq_disable(irq); in irq_handler_disable()
197 if (!ret && irq < PLATFORM_MAX_IRQ) in irq_handler_disable()
198 irq_desc[irq].flag &= ~IRQ_FLG_ENABLE; in irq_handler_disable()
203 int irq_set_irq_type(int irq, unsigned int type) in irq_set_irq_type() argument
205 if (bad_irq(irq)) in irq_set_irq_type()
208 if (irq < PLATFORM_GIC_MAX_IRQ) in irq_set_irq_type()
209 return irqchip.gic->irq_set_type(irq, type); in irq_set_irq_type()
210 else if (irq < PLATFORM_GPIO_MAX_IRQ) in irq_set_irq_type()
211 return irqchip.gpio->irq_set_type(irq, type); in irq_set_irq_type()
216 int irq_revert_irq_type(int irq) in irq_revert_irq_type() argument
218 if (bad_irq(irq)) in irq_revert_irq_type()
221 if (irq < PLATFORM_GIC_MAX_IRQ) in irq_revert_irq_type()
223 else if (irq < PLATFORM_GPIO_MAX_IRQ) in irq_revert_irq_type()
224 return irqchip.gpio->irq_revert_type(irq); in irq_revert_irq_type()
229 int irq_get_gpio_level(int irq) in irq_get_gpio_level() argument
231 if (bad_irq(irq)) in irq_get_gpio_level()
234 if (irq < PLATFORM_GIC_MAX_IRQ) in irq_get_gpio_level()
236 else if (irq < PLATFORM_GPIO_MAX_IRQ) in irq_get_gpio_level()
237 return irqchip.gpio->irq_get_gpio_level(irq); in irq_get_gpio_level()
242 void irq_install_handler(int irq, interrupt_handler_t *handler, void *data) in irq_install_handler() argument
249 if (irq < PLATFORM_MAX_IRQ) { in irq_install_handler()
250 if (!handler || irq_desc[irq].handle_irq) in irq_install_handler()
252 irq_desc[irq].handle_irq = handler; in irq_install_handler()
253 irq_desc[irq].data = data; in irq_install_handler()
255 virq_install_handler(irq, handler, data); in irq_install_handler()
259 void irq_free_handler(int irq) in irq_free_handler() argument
261 if (irq_handler_disable(irq)) in irq_free_handler()
264 if (irq < PLATFORM_MAX_IRQ) { in irq_free_handler()
265 irq_desc[irq].handle_irq = NULL; in irq_free_handler()
266 irq_desc[irq].data = NULL; in irq_free_handler()
268 virq_free_handler(irq); in irq_free_handler()
272 int irq_handler_enable_suspend_only(int irq) in irq_handler_enable_suspend_only() argument
274 if (bad_irq(irq)) in irq_handler_enable_suspend_only()
278 printf("Over max count(%d) of suspend irq\n", in irq_handler_enable_suspend_only()
283 irqchip.suspend_irq[irqchip.suspend_num++] = irq; in irq_handler_enable_suspend_only()
385 printf(" IRQ En Handler Driver Name Trig\n"); in do_dump_irqs()
394 drv_name = "IRQ"; in do_dump_irqs()