Message ID | 1362728327-21013-1-git-send-email-dongsheng.wang@freescale.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Kumar Gala |
Headers | show |
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@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@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
On Mon, 2013-03-18 at 09:28 +0000, Wang Dongsheng-B40534 wrote: > Hi Benjamin & Kumar, > > I am not sure who can apply these patches... > > Could you apply these patches? I can but I need somebody to review them, I don't have the bandwidth nor am I familiar with the FSL changes to the MPIC. Cheers, Ben. > 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@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@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 >
On Mar 18, 2013, at 9:41 AM, Benjamin Herrenschmidt wrote: > On Mon, 2013-03-18 at 09:28 +0000, Wang Dongsheng-B40534 wrote: >> Hi Benjamin & Kumar, >> >> I am not sure who can apply these patches... >> >> Could you apply these patches? > > I can but I need somebody to review them, I don't have the bandwidth nor > am I familiar with the FSL changes to the MPIC. > > Cheers, > Ben. I'd ask for Scott's ack/signoff on these patches for ben or I to accept them. - k > >> 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@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@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 >> > > >
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 */
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@freescale.com> --- arch/powerpc/sysdev/mpic.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)