diff options
Diffstat (limited to 'include/linux/irq.h')
| -rw-r--r-- | include/linux/irq.h | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 8d5bc2c237d7..1b7f4dfee35b 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -213,6 +213,8 @@ struct irq_data {   *				  required   * IRQD_HANDLE_ENFORCE_IRQCTX	- Enforce that handle_irq_*() is only invoked   *				  from actual interrupt context. + * IRQD_AFFINITY_ON_ACTIVATE	- Affinity is set on activation. Don't call + *				  irq_chip::irq_set_affinity() when deactivated.   */  enum {  	IRQD_TRIGGER_MASK		= 0xf, @@ -237,6 +239,7 @@ enum {  	IRQD_CAN_RESERVE		= (1 << 26),  	IRQD_MSI_NOMASK_QUIRK		= (1 << 27),  	IRQD_HANDLE_ENFORCE_IRQCTX	= (1 << 28), +	IRQD_AFFINITY_ON_ACTIVATE	= (1 << 29),  };  #define __irqd_to_state(d) ACCESS_PRIVATE((d)->common, state_use_accessors) @@ -421,6 +424,16 @@ static inline bool irqd_msi_nomask_quirk(struct irq_data *d)  	return __irqd_to_state(d) & IRQD_MSI_NOMASK_QUIRK;  } +static inline void irqd_set_affinity_on_activate(struct irq_data *d) +{ +	__irqd_to_state(d) |= IRQD_AFFINITY_ON_ACTIVATE; +} + +static inline bool irqd_affinity_on_activate(struct irq_data *d) +{ +	return __irqd_to_state(d) & IRQD_AFFINITY_ON_ACTIVATE; +} +  #undef __irqd_to_state  static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)  | 
