Lines Matching refs:irq
39 * IRQ/FIQ initialisation, claim, release and handler routines
71 * Initialise the IRQ/FIQ sub system
79 /* Clear all the IRQ handlers and the irq block masks */
98 /* Enable IRQ's and FIQ's */
104 * int irq_claim(int irq, irqhandler_t *handler)
106 * Enable an IRQ and install a handler for it.
110 irq_claim(int irq, irqhandler_t *handler, const char *group, const char *name)
123 * IRQ_INSTRUCT indicates that we should get the irq number
124 * from the irq structure
126 if (irq == IRQ_INSTRUCT)
127 irq = handler->ih_num;
129 /* Make sure the irq number is valid */
130 if (irq < 0 || irq >= NIRQS)
141 handler->ih_next = irqhandlers[irq];
142 irqhandlers[irq] = handler;
153 * IRQ number though for the moment they are
155 handler->ih_num = irq;
158 * Update the irq masks.
159 * Find the lowest interrupt priority on the irq chain.
168 * Find the lowest interrupt priority on the irq chain.
171 ptr = irqhandlers[irq];
180 irqmasks[level] |= (1 << irq);
193 enable_irq(irq);
201 * int irq_release(int irq, irqhandler_t *handler)
203 * Disable an IRQ and remove a handler for it.
207 irq_release(int irq, irqhandler_t *handler)
214 * IRQ_INSTRUCT indicates that we should get the irq number
215 * from the irq structure
217 if (irq == IRQ_INSTRUCT)
218 irq = handler->ih_num;
220 /* Make sure the irq number is valid */
221 if (irq < 0 || irq >= NIRQS)
225 irqhand = irqhandlers[irq];
226 prehand = &irqhandlers[irq];
243 if (irqhandlers[irq])
244 irqhandlers[irq]->ih_flags |= IRQ_FLAG_ACTIVE;
247 * Update the irq masks.
256 irqmasks[level] &= ~(1 << irq);
259 * Find the lowest interrupt priority on the irq chain.
262 ptr = irqhandlers[irq];
271 irqmasks[level] |= (1 << irq);
279 * this IRQ.
281 if (irqhandlers[irq] == NULL)
282 disable_irq(irq);
291 intr_claim(int irq, int level, int (*ih_func)(void *), void *ih_arg, const char *group, const char *name)
301 if (irq_claim(irq, ih, group, name) != 0) {
323 * void disable_irq(int irq)
325 * Disables a specific irq. The irq is removed from the master irq mask
329 disable_irq(int irq)
334 current_mask &= ~(1 << irq);
341 * void enable_irq(int irq)
343 * Enables a specific irq. The irq is added to the master irq mask
349 enable_irq(int irq)
354 current_mask |= (1 << irq);