Lines Matching refs:irq

27 #include <asm/irq.h>
35 typedef void (*irq_flow_handler_t)(unsigned int irq,
124 * struct irq_data - per irq and irq chip data passed down to chip functions
125 * @irq: interrupt number
128 * @state_use_accessors: status information for irq chip functions.
132 * between hwirq number and linux irq number.
144 unsigned int irq;
341 void (*release)(unsigned int irq, void *dev_id);
349 * IRQCHIP_EOI_IF_HANDLED: Only issue irq_eoi() when irq was handled
352 * when irq enabled
353 * IRQCHIP_SKIP_SET_WAKE: Skip chip.irq_set_wake(), for this irq chip
382 extern int setup_irq(unsigned int irq, struct irqaction *new);
383 extern void remove_irq(unsigned int irq, struct irqaction *act);
384 extern int setup_percpu_irq(unsigned int irq, struct irqaction *new);
385 extern void remove_percpu_irq(unsigned int irq, struct irqaction *act);
407 extern void handle_level_irq(unsigned int irq, struct irq_desc *desc);
408 extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc);
409 extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc);
410 extern void handle_edge_eoi_irq(unsigned int irq, struct irq_desc *desc);
411 extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc);
412 extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
413 extern void handle_percpu_devid_irq(unsigned int irq, struct irq_desc *desc);
414 extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc);
415 extern void handle_nested_irq(unsigned int irq);
418 extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
422 /* Enable/disable irq debugging output: */
426 extern int can_request_irq(unsigned int irq, unsigned long irqflags);
428 /* Dummy irq-chip implementations: */
433 irq_set_chip_and_handler_name(unsigned int irq, struct irq_chip *chip,
436 static inline void irq_set_chip_and_handler(unsigned int irq, struct irq_chip *chip,
439 irq_set_chip_and_handler_name(irq, chip, handle, NULL);
442 extern int irq_set_percpu_devid(unsigned int irq);
445 __irq_set_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
449 irq_set_handler(unsigned int irq, irq_flow_handler_t handle)
451 __irq_set_handler(irq, handle, 0, NULL);
460 irq_set_chained_handler(unsigned int irq, irq_flow_handler_t handle)
462 __irq_set_handler(irq, handle, 1, NULL);
465 void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set);
467 static inline void irq_set_status_flags(unsigned int irq, unsigned long set)
469 irq_modify_status(irq, 0, set);
472 static inline void irq_clear_status_flags(unsigned int irq, unsigned long clr)
474 irq_modify_status(irq, clr, 0);
477 static inline void irq_set_noprobe(unsigned int irq)
479 irq_modify_status(irq, 0, IRQ_NOPROBE);
482 static inline void irq_set_probe(unsigned int irq)
484 irq_modify_status(irq, IRQ_NOPROBE, 0);
487 static inline void irq_set_nothread(unsigned int irq)
489 irq_modify_status(irq, 0, IRQ_NOTHREAD);
492 static inline void irq_set_thread(unsigned int irq)
494 irq_modify_status(irq, IRQ_NOTHREAD, 0);
497 static inline void irq_set_nested_thread(unsigned int irq, bool nest)
500 irq_set_status_flags(irq, IRQ_NESTED_THREAD);
502 irq_clear_status_flags(irq, IRQ_NESTED_THREAD);
505 static inline void irq_set_percpu_devid_flags(unsigned int irq)
507 irq_set_status_flags(irq,
512 /* Handle dynamic irq creation and destruction */
515 extern void destroy_irq(unsigned int irq);
518 * Dynamic irq helper functions. Obsolete. Use irq_alloc_desc* and
521 extern void dynamic_irq_cleanup(unsigned int irq);
522 static inline void dynamic_irq_init(unsigned int irq)
524 dynamic_irq_cleanup(irq);
528 extern int irq_set_chip(unsigned int irq, struct irq_chip *chip);
529 extern int irq_set_handler_data(unsigned int irq, void *data);
530 extern int irq_set_chip_data(unsigned int irq, void *data);
531 extern int irq_set_irq_type(unsigned int irq, unsigned int type);
532 extern int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry);
533 extern struct irq_data *irq_get_irq_data(unsigned int irq);
535 static inline struct irq_chip *irq_get_chip(unsigned int irq)
537 struct irq_data *d = irq_get_irq_data(irq);
546 static inline void *irq_get_chip_data(unsigned int irq)
548 struct irq_data *d = irq_get_irq_data(irq);
557 static inline void *irq_get_handler_data(unsigned int irq)
559 struct irq_data *d = irq_get_irq_data(irq);
568 static inline struct msi_desc *irq_get_msi_desc(unsigned int irq)
570 struct irq_data *d = irq_get_irq_data(irq);
579 int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
583 #define irq_alloc_descs(irq, from, cnt, node) \
584 __irq_alloc_descs(irq, from, cnt, node, THIS_MODULE)
595 void irq_free_descs(unsigned int irq, unsigned int cnt);
598 static inline void irq_free_desc(unsigned int irq)
600 irq_free_descs(irq, 1);
603 static inline int irq_reserve_irq(unsigned int irq)
605 return irq_reserve_irqs(irq, 1);
654 * struct irq_chip_generic - Generic irq chip data structure
670 * implementations which can be associated to a particular irq line of
692 * enum irq_gc_flags - Initialization flags for generic irq chips
695 * irq chips which need to call irq_set_wake() on
696 * the parent irq. Usually GPIO implementations