[PATCH][UPSTEAM] powerpc/mpic: add irq_set_wake support
Scott Wood
scottwood at freescale.com
Tue Mar 19 10:36:18 EST 2013
On 01/30/2013 09:10:23 PM, Wang Dongsheng wrote:
> 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 9c6e535..2ed0220 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;
> +}
This should really be something like fsl_mpic_irq_set_wake() and only
set when we have an FSL MPIC.
> 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 */
Why ht?
-Scott
More information about the Linuxppc-dev
mailing list