diff options
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r-- | include/linux/irq.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 7dc10036eff5..d278838908cb 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -303,6 +303,10 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d) | |||
303 | * @irq_pm_shutdown: function called from core code on shutdown once per chip | 303 | * @irq_pm_shutdown: function called from core code on shutdown once per chip |
304 | * @irq_calc_mask: Optional function to set irq_data.mask for special cases | 304 | * @irq_calc_mask: Optional function to set irq_data.mask for special cases |
305 | * @irq_print_chip: optional to print special chip info in show_interrupts | 305 | * @irq_print_chip: optional to print special chip info in show_interrupts |
306 | * @irq_request_resources: optional to request resources before calling | ||
307 | * any other callback related to this irq | ||
308 | * @irq_release_resources: optional to release resources acquired with | ||
309 | * irq_request_resources | ||
306 | * @flags: chip specific flags | 310 | * @flags: chip specific flags |
307 | */ | 311 | */ |
308 | struct irq_chip { | 312 | struct irq_chip { |
@@ -336,6 +340,8 @@ struct irq_chip { | |||
336 | void (*irq_calc_mask)(struct irq_data *data); | 340 | void (*irq_calc_mask)(struct irq_data *data); |
337 | 341 | ||
338 | void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); | 342 | void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); |
343 | int (*irq_request_resources)(struct irq_data *data); | ||
344 | void (*irq_release_resources)(struct irq_data *data); | ||
339 | 345 | ||
340 | unsigned long flags; | 346 | unsigned long flags; |
341 | }; | 347 | }; |
@@ -349,6 +355,8 @@ struct irq_chip { | |||
349 | * IRQCHIP_ONOFFLINE_ENABLED: Only call irq_on/off_line callbacks | 355 | * IRQCHIP_ONOFFLINE_ENABLED: Only call irq_on/off_line callbacks |
350 | * when irq enabled | 356 | * when irq enabled |
351 | * IRQCHIP_SKIP_SET_WAKE: Skip chip.irq_set_wake(), for this irq chip | 357 | * IRQCHIP_SKIP_SET_WAKE: Skip chip.irq_set_wake(), for this irq chip |
358 | * IRQCHIP_ONESHOT_SAFE: One shot does not require mask/unmask | ||
359 | * IRQCHIP_EOI_THREADED: Chip requires eoi() on unmask in threaded mode | ||
352 | */ | 360 | */ |
353 | enum { | 361 | enum { |
354 | IRQCHIP_SET_TYPE_MASKED = (1 << 0), | 362 | IRQCHIP_SET_TYPE_MASKED = (1 << 0), |
@@ -357,6 +365,7 @@ enum { | |||
357 | IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), | 365 | IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), |
358 | IRQCHIP_SKIP_SET_WAKE = (1 << 4), | 366 | IRQCHIP_SKIP_SET_WAKE = (1 << 4), |
359 | IRQCHIP_ONESHOT_SAFE = (1 << 5), | 367 | IRQCHIP_ONESHOT_SAFE = (1 << 5), |
368 | IRQCHIP_EOI_THREADED = (1 << 6), | ||
360 | }; | 369 | }; |
361 | 370 | ||
362 | /* This include will go away once we isolated irq_desc usage to core code */ | 371 | /* This include will go away once we isolated irq_desc usage to core code */ |