diff options
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r-- | include/linux/irq.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 2ba2f1216790..8b4538446636 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -280,6 +280,9 @@ static inline void irqd_clr_chained_irq_inprogress(struct irq_data *d) | |||
280 | * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips | 280 | * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips |
281 | * @irq_cpu_online: configure an interrupt source for a secondary CPU | 281 | * @irq_cpu_online: configure an interrupt source for a secondary CPU |
282 | * @irq_cpu_offline: un-configure an interrupt source for a secondary CPU | 282 | * @irq_cpu_offline: un-configure an interrupt source for a secondary CPU |
283 | * @irq_suspend: function called from core code on suspend once per chip | ||
284 | * @irq_resume: function called from core code on resume once per chip | ||
285 | * @irq_pm_shutdown: function called from core code on shutdown once per chip | ||
283 | * @irq_print_chip: optional to print special chip info in show_interrupts | 286 | * @irq_print_chip: optional to print special chip info in show_interrupts |
284 | * @flags: chip specific flags | 287 | * @flags: chip specific flags |
285 | * | 288 | * |
@@ -309,6 +312,10 @@ struct irq_chip { | |||
309 | void (*irq_cpu_online)(struct irq_data *data); | 312 | void (*irq_cpu_online)(struct irq_data *data); |
310 | void (*irq_cpu_offline)(struct irq_data *data); | 313 | void (*irq_cpu_offline)(struct irq_data *data); |
311 | 314 | ||
315 | void (*irq_suspend)(struct irq_data *data); | ||
316 | void (*irq_resume)(struct irq_data *data); | ||
317 | void (*irq_pm_shutdown)(struct irq_data *data); | ||
318 | |||
312 | void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); | 319 | void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); |
313 | 320 | ||
314 | unsigned long flags; | 321 | unsigned long flags; |
@@ -626,6 +633,7 @@ struct irq_chip_type { | |||
626 | * @wake_active: Interrupt is marked as an wakeup from suspend source | 633 | * @wake_active: Interrupt is marked as an wakeup from suspend source |
627 | * @num_ct: Number of available irq_chip_type instances (usually 1) | 634 | * @num_ct: Number of available irq_chip_type instances (usually 1) |
628 | * @private: Private data for non generic chip callbacks | 635 | * @private: Private data for non generic chip callbacks |
636 | * @list: List head for keeping track of instances | ||
629 | * @chip_types: Array of interrupt irq_chip_types | 637 | * @chip_types: Array of interrupt irq_chip_types |
630 | * | 638 | * |
631 | * Note, that irq_chip_generic can have multiple irq_chip_type | 639 | * Note, that irq_chip_generic can have multiple irq_chip_type |
@@ -646,6 +654,7 @@ struct irq_chip_generic { | |||
646 | u32 wake_active; | 654 | u32 wake_active; |
647 | unsigned int num_ct; | 655 | unsigned int num_ct; |
648 | void *private; | 656 | void *private; |
657 | struct list_head list; | ||
649 | struct irq_chip_type chip_types[0]; | 658 | struct irq_chip_type chip_types[0]; |
650 | }; | 659 | }; |
651 | 660 | ||
@@ -680,6 +689,8 @@ void irq_setup_generic_chip(struct irq_chip_generic *gc, u32 msk, | |||
680 | enum irq_gc_flags flags, unsigned int clr, | 689 | enum irq_gc_flags flags, unsigned int clr, |
681 | unsigned int set); | 690 | unsigned int set); |
682 | int irq_setup_alt_chip(struct irq_data *d, unsigned int type); | 691 | int irq_setup_alt_chip(struct irq_data *d, unsigned int type); |
692 | void irq_remove_generic_chip(struct irq_chip_generic *gc, u32 msk, | ||
693 | unsigned int clr, unsigned int set); | ||
683 | 694 | ||
684 | static inline struct irq_chip_type *irq_data_get_chip_type(struct irq_data *d) | 695 | static inline struct irq_chip_type *irq_data_get_chip_type(struct irq_data *d) |
685 | { | 696 | { |