genirq: Remove stale comment
[firefly-linux-kernel-4.4.55.git] / include / linux / irq.h
index 51744bcf74eec7bee678b9e1f63c3a10f247350e..72a6b2feb7bfb4538798fd013cae68397c1c4ba1 100644 (file)
@@ -151,10 +151,6 @@ struct irq_common_data {
  *                     methods, to allow shared chip implementations
  * @msi_desc:          MSI descriptor
  * @affinity:          IRQ affinity on SMP
- *
- * The fields here need to overlay the ones in irq_desc until we
- * cleaned up the direct references and switched everything over to
- * irq_data.
  */
 struct irq_data {
        u32                     mask;
@@ -324,8 +320,10 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
  * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips
  * @irq_cpu_online:    configure an interrupt source for a secondary CPU
  * @irq_cpu_offline:   un-configure an interrupt source for a secondary CPU
- * @irq_suspend:       function called from core code on suspend once per chip
- * @irq_resume:                function called from core code on resume once per chip
+ * @irq_suspend:       function called from core code on suspend once per
+ *                     chip, when one or more interrupts are installed
+ * @irq_resume:                function called from core code on resume once per chip,
+ *                     when one ore more interrupts are installed
  * @irq_pm_shutdown:   function called from core code on shutdown once per chip
  * @irq_calc_mask:     Optional function to set irq_data.mask for special cases
  * @irq_print_chip:    optional to print special chip info in show_interrupts
@@ -488,8 +486,7 @@ extern int irq_chip_set_type_parent(struct irq_data *data, unsigned int type);
 #endif
 
 /* Handling of unhandled and spurious interrupts: */
-extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
-                          irqreturn_t action_ret);
+extern void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret);
 
 
 /* Enable/disable irq debugging output: */
@@ -640,7 +637,7 @@ static inline struct msi_desc *irq_get_msi_desc(unsigned int irq)
        return d ? d->msi_desc : NULL;
 }
 
-static inline struct msi_desc *irq_data_get_msi(struct irq_data *d)
+static inline struct msi_desc *irq_data_get_msi_desc(struct irq_data *d)
 {
        return d->msi_desc;
 }
@@ -762,6 +759,12 @@ struct irq_chip_type {
  * @reg_base:          Register base address (virtual)
  * @reg_readl:         Alternate I/O accessor (defaults to readl if NULL)
  * @reg_writel:                Alternate I/O accessor (defaults to writel if NULL)
+ * @suspend:           Function called from core code on suspend once per
+ *                     chip; can be useful instead of irq_chip::suspend to
+ *                     handle chip details even when no interrupts are in use
+ * @resume:            Function called from core code on resume once per chip;
+ *                     can be useful instead of irq_chip::suspend to handle
+ *                     chip details even when no interrupts are in use
  * @irq_base:          Interrupt base nr for this chip
  * @irq_cnt:           Number of interrupts handled by this chip
  * @mask_cache:                Cached mask register shared between all chip types
@@ -788,6 +791,8 @@ struct irq_chip_generic {
        void __iomem            *reg_base;
        u32                     (*reg_readl)(void __iomem *addr);
        void                    (*reg_writel)(u32 val, void __iomem *addr);
+       void                    (*suspend)(struct irq_chip_generic *gc);
+       void                    (*resume)(struct irq_chip_generic *gc);
        unsigned int            irq_base;
        unsigned int            irq_cnt;
        u32                     mask_cache;