diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2017-12-01 16:01:37 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2017-12-01 16:01:37 +0100 |
commit | 3bec8fdb4404ede89f4816c89cf433e7ab4e5242 (patch) | |
tree | f3712ea636701f32dd587b2db9b38937381f0ab1 /include/linux/irq.h | |
parent | e31a1d7fbf264ce173dffdd1b5e71aad6544ed6c (diff) | |
parent | 191314edb326764c4481b09ccf7d00159abe4679 (diff) | |
download | linux-rt-3bec8fdb4404ede89f4816c89cf433e7ab4e5242.tar.gz |
Merge tag 'v4.14.3' into linux-4.14.y-rt
This is the 4.14.3 stable release
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r-- | include/linux/irq.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 60cd9d9778a3..ddd23c6e2e55 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -213,6 +213,7 @@ struct irq_data { * IRQD_MANAGED_SHUTDOWN - Interrupt was shutdown due to empty affinity * mask. Applies only to affinity managed irqs. * IRQD_SINGLE_TARGET - IRQ allows only a single affinity target + * IRQD_DEFAULT_TRIGGER_SET - Expected trigger already been set */ enum { IRQD_TRIGGER_MASK = 0xf, @@ -233,6 +234,7 @@ enum { IRQD_IRQ_STARTED = (1 << 22), IRQD_MANAGED_SHUTDOWN = (1 << 23), IRQD_SINGLE_TARGET = (1 << 24), + IRQD_DEFAULT_TRIGGER_SET = (1 << 25), }; #define __irqd_to_state(d) ACCESS_PRIVATE((d)->common, state_use_accessors) @@ -262,18 +264,25 @@ static inline void irqd_mark_affinity_was_set(struct irq_data *d) __irqd_to_state(d) |= IRQD_AFFINITY_SET; } +static inline bool irqd_trigger_type_was_set(struct irq_data *d) +{ + return __irqd_to_state(d) & IRQD_DEFAULT_TRIGGER_SET; +} + static inline u32 irqd_get_trigger_type(struct irq_data *d) { return __irqd_to_state(d) & IRQD_TRIGGER_MASK; } /* - * Must only be called inside irq_chip.irq_set_type() functions. + * Must only be called inside irq_chip.irq_set_type() functions or + * from the DT/ACPI setup code. */ static inline void irqd_set_trigger_type(struct irq_data *d, u32 type) { __irqd_to_state(d) &= ~IRQD_TRIGGER_MASK; __irqd_to_state(d) |= type & IRQD_TRIGGER_MASK; + __irqd_to_state(d) |= IRQD_DEFAULT_TRIGGER_SET; } static inline bool irqd_is_level_type(struct irq_data *d) |