[PATCH 1/3] powerpc/mpic: add irq_set_wake support

Wang Dongsheng-B40534 B40534 at freescale.com
Mon Mar 18 20:28:07 EST 2013


Hi Benjamin & Kumar,

I am not sure who can apply these patches...

Could you apply these patches?

Thanks.

[1/3] powerpc/mpic: add irq_set_wake support
http://patchwork.ozlabs.org/patch/226034/

[2/3] powerpc/mpic: add global timer support
http://patchwork.ozlabs.org/patch/226035/

[3/3] powerpc/fsl: add MPIC timer wakeup support
http://patchwork.ozlabs.org/patch/226036/

> -----Original Message-----
> From: Wang Dongsheng-B40534
> Sent: Friday, March 08, 2013 3:39 PM
> To: Wood Scott-B07421; Gala Kumar-B11780
> Cc: linuxppc-dev at lists.ozlabs.org; Wang Dongsheng-B40534
> Subject: [PATCH 1/3] powerpc/mpic: add irq_set_wake support
> 
> Add irq_set_wake support. Just add IRQF_NO_SUSPEND to desc->action->flag.
> So the wake up interrupt will not be disable in suspend_device_irqs.
> 
> Signed-off-by: Wang Dongsheng <dongsheng.wang at freescale.com>
> ---
>  arch/powerpc/sysdev/mpic.c |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> index 3b2efd4..10e474e 100644
> --- a/arch/powerpc/sysdev/mpic.c
> +++ b/arch/powerpc/sysdev/mpic.c
> @@ -920,6 +920,18 @@ int mpic_set_irq_type(struct irq_data *d, unsigned
> int flow_type)
>  	return IRQ_SET_MASK_OK_NOCOPY;
>  }
> 
> +static int mpic_irq_set_wake(struct irq_data *d, unsigned int on) {
> +	struct irq_desc *desc = container_of(d, struct irq_desc, irq_data);
> +
> +	if (on)
> +		desc->action->flags |= IRQF_NO_SUSPEND;
> +	else
> +		desc->action->flags &= ~IRQF_NO_SUSPEND;
> +
> +	return 0;
> +}
> +
>  void mpic_set_vector(unsigned int virq, unsigned int vector)  {
>  	struct mpic *mpic = mpic_from_irq(virq); @@ -957,6 +969,7 @@ static
> struct irq_chip mpic_irq_chip = {
>  	.irq_unmask	= mpic_unmask_irq,
>  	.irq_eoi	= mpic_end_irq,
>  	.irq_set_type	= mpic_set_irq_type,
> +	.irq_set_wake	= mpic_irq_set_wake,
>  };
> 
>  #ifdef CONFIG_SMP
> @@ -971,6 +984,7 @@ static struct irq_chip mpic_tm_chip = {
>  	.irq_mask	= mpic_mask_tm,
>  	.irq_unmask	= mpic_unmask_tm,
>  	.irq_eoi	= mpic_end_irq,
> +	.irq_set_wake	= mpic_irq_set_wake,
>  };
> 
>  #ifdef CONFIG_MPIC_U3_HT_IRQS
> @@ -981,6 +995,7 @@ static struct irq_chip mpic_irq_ht_chip = {
>  	.irq_unmask	= mpic_unmask_ht_irq,
>  	.irq_eoi	= mpic_end_ht_irq,
>  	.irq_set_type	= mpic_set_irq_type,
> +	.irq_set_wake	= mpic_irq_set_wake,
>  };
>  #endif /* CONFIG_MPIC_U3_HT_IRQS */
> 
> --
> 1.7.5.1




More information about the Linuxppc-dev mailing list