[PATCH 1/5] genirq: Add irqchip_set_wake_parent

Stefan Agner stefan at agner.ch
Sat Dec 6 07:34:53 PST 2014


Thanks for the CC, interesting read for me, good preparation for the
next revision of my Vybrid patchset. One thing I stumbled upon below:

On 2014-12-06 14:46, Marc Zyngier wrote:
> This proves to be usefull with stacked domains.
> 
> Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>
> ---
>  include/linux/irq.h |  1 +
>  kernel/irq/chip.c   | 16 ++++++++++++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/include/linux/irq.h b/include/linux/irq.h
> index 8badf34..7de85b8 100644
> --- a/include/linux/irq.h
> +++ b/include/linux/irq.h
> @@ -459,6 +459,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
>  
>  static inline void irq_chip_write_msi_msg(struct irq_data *data,
> diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
> index 6f1c7a5..96c190b 100644
> --- a/kernel/irq/chip.c
> +++ b/kernel/irq/chip.c
> @@ -948,6 +948,22 @@ int irq_chip_retrigger_hierarchy(struct irq_data *data)
>  
>  	return -ENOSYS;
>  }
> +
> +/**
> + * irq_chip_set_wake - Set/reset wake-up on the parent interrupt
                       ^
This should be irq_chip_set_wake_parent I guess...


> + * @data:	Pointer to interrupt specific data
> + * @on:		Whether to set or reset the wake-up capability of this irq
> + *
> + * Conditional, as the underlying parent chip might not implement it.
> + */
> +int irq_chip_set_wake_parent(struct irq_data *data, unsigned int on)
> +{
> +	data = data->parent_data;
> +	if (data->chip->irq_set_wake)
> +		return data->chip->irq_set_wake(data, on);
> +
> +	return -ENOSYS;
> +}
>  #endif
>  
>  /**




More information about the linux-arm-kernel mailing list