Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[firefly-linux-kernel-4.4.55.git] / include / linux / irq.h
index d09ec7a1243e767dd95df2a4cc1d54775da0eb25..62c6901cab550d7f57039c5b7052fc08bbe0964d 100644 (file)
@@ -30,6 +30,7 @@
 struct seq_file;
 struct module;
 struct msi_msg;
+enum irqchip_irq_state;
 
 /*
  * IRQ line status.
@@ -324,6 +325,8 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
  *                             irq_request_resources
  * @irq_compose_msi_msg:       optional to compose message content for MSI
  * @irq_write_msi_msg: optional to write message content for MSI
+ * @irq_get_irqchip_state:     return the internal state of an interrupt
+ * @irq_set_irqchip_state:     set the internal state of a interrupt
  * @flags:             chip specific flags
  */
 struct irq_chip {
@@ -363,6 +366,9 @@ struct irq_chip {
        void            (*irq_compose_msi_msg)(struct irq_data *data, struct msi_msg *msg);
        void            (*irq_write_msi_msg)(struct irq_data *data, struct msi_msg *msg);
 
+       int             (*irq_get_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool *state);
+       int             (*irq_set_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool state);
+
        unsigned long   flags;
 };
 
@@ -460,6 +466,7 @@ extern void irq_chip_eoi_parent(struct irq_data *data);
 extern int irq_chip_set_affinity_parent(struct irq_data *data,
                                        const struct cpumask *dest,
                                        bool force);
+extern int irq_chip_set_wake_parent(struct irq_data *data, unsigned int on);
 #endif
 
 /* Handling of unhandled and spurious interrupts: */