diff options
-rw-r--r-- | include/linux/irq.h | 66 |
1 files changed, 50 insertions, 16 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 002351d83c3f..0c83cbd2df4e 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -118,23 +118,38 @@ struct irq_data { | |||
118 | * struct irq_chip - hardware interrupt chip descriptor | 118 | * struct irq_chip - hardware interrupt chip descriptor |
119 | * | 119 | * |
120 | * @name: name for /proc/interrupts | 120 | * @name: name for /proc/interrupts |
121 | * @startup: start up the interrupt (defaults to ->enable if NULL) | 121 | * @startup: deprecated, replaced by irq_startup |
122 | * @shutdown: shut down the interrupt (defaults to ->disable if NULL) | 122 | * @shutdown: deprecated, replaced by irq_shutdown |
123 | * @enable: enable the interrupt (defaults to chip->unmask if NULL) | 123 | * @enable: deprecated, replaced by irq_enable |
124 | * @disable: disable the interrupt | 124 | * @disable: deprecated, replaced by irq_disable |
125 | * @ack: start of a new interrupt | 125 | * @ack: deprecated, replaced by irq_ack |
126 | * @mask: mask an interrupt source | 126 | * @mask: deprecated, replaced by irq_mask |
127 | * @mask_ack: ack and mask an interrupt source | 127 | * @mask_ack: deprecated, replaced by irq_mask_ack |
128 | * @unmask: unmask an interrupt source | 128 | * @unmask: deprecated, replaced by irq_unmask |
129 | * @eoi: end of interrupt - chip level | 129 | * @eoi: deprecated, replaced by irq_eoi |
130 | * @end: end of interrupt - flow level | 130 | * @end: deprecated, will go away with __do_IRQ() |
131 | * @set_affinity: set the CPU affinity on SMP machines | 131 | * @set_affinity: deprecated, replaced by irq_set_affinity |
132 | * @retrigger: resend an IRQ to the CPU | 132 | * @retrigger: deprecated, replaced by irq_retrigger |
133 | * @set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ | 133 | * @set_type: deprecated, replaced by irq_set_type |
134 | * @set_wake: enable/disable power-management wake-on of an IRQ | 134 | * @set_wake: deprecated, replaced by irq_wake |
135 | * @bus_lock: deprecated, replaced by irq_bus_lock | ||
136 | * @bus_sync_unlock: deprecated, replaced by irq_bus_sync_unlock | ||
135 | * | 137 | * |
136 | * @bus_lock: function to lock access to slow bus (i2c) chips | 138 | * @irq_startup: start up the interrupt (defaults to ->enable if NULL) |
137 | * @bus_sync_unlock: function to sync and unlock slow bus (i2c) chips | 139 | * @irq_shutdown: shut down the interrupt (defaults to ->disable if NULL) |
140 | * @irq_enable: enable the interrupt (defaults to chip->unmask if NULL) | ||
141 | * @irq_disable: disable the interrupt | ||
142 | * @irq_ack: start of a new interrupt | ||
143 | * @irq_mask: mask an interrupt source | ||
144 | * @irq_mask_ack: ack and mask an interrupt source | ||
145 | * @irq_unmask: unmask an interrupt source | ||
146 | * @irq_eoi: end of interrupt | ||
147 | * @irq_set_affinity: set the CPU affinity on SMP machines | ||
148 | * @irq_retrigger: resend an IRQ to the CPU | ||
149 | * @irq_set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ | ||
150 | * @irq_set_wake: enable/disable power-management wake-on of an IRQ | ||
151 | * @irq_bus_lock: function to lock access to slow bus (i2c) chips | ||
152 | * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips | ||
138 | * | 153 | * |
139 | * @release: release function solely used by UML | 154 | * @release: release function solely used by UML |
140 | */ | 155 | */ |
@@ -161,6 +176,25 @@ struct irq_chip { | |||
161 | void (*bus_lock)(unsigned int irq); | 176 | void (*bus_lock)(unsigned int irq); |
162 | void (*bus_sync_unlock)(unsigned int irq); | 177 | void (*bus_sync_unlock)(unsigned int irq); |
163 | 178 | ||
179 | unsigned int (*irq_startup)(struct irq_data *data); | ||
180 | void (*irq_shutdown)(struct irq_data *data); | ||
181 | void (*irq_enable)(struct irq_data *data); | ||
182 | void (*irq_disable)(struct irq_data *data); | ||
183 | |||
184 | void (*irq_ack)(struct irq_data *data); | ||
185 | void (*irq_mask)(struct irq_data *data); | ||
186 | void (*irq_mask_ack)(struct irq_data *data); | ||
187 | void (*irq_unmask)(struct irq_data *data); | ||
188 | void (*irq_eoi)(struct irq_data *data); | ||
189 | |||
190 | int (*irq_set_affinity)(struct irq_data *data, const struct cpumask *dest, bool force); | ||
191 | int (*irq_retrigger)(struct irq_data *data); | ||
192 | int (*irq_set_type)(struct irq_data *data, unsigned int flow_type); | ||
193 | int (*irq_set_wake)(struct irq_data *data, unsigned int on); | ||
194 | |||
195 | void (*irq_bus_lock)(struct irq_data *data); | ||
196 | void (*irq_bus_sync_unlock)(struct irq_data *data); | ||
197 | |||
164 | /* Currently used only by UML, might disappear one day.*/ | 198 | /* Currently used only by UML, might disappear one day.*/ |
165 | #ifdef CONFIG_IRQ_RELEASE_METHOD | 199 | #ifdef CONFIG_IRQ_RELEASE_METHOD |
166 | void (*release)(unsigned int irq, void *dev_id); | 200 | void (*release)(unsigned int irq, void *dev_id); |