[PATCH v3 1/4] powerpc/mpic: add irq_set_wake support

Scott Wood scottwood at freescale.com
Wed Apr 17 09:30:21 EST 2013


ACK

-Scott

On 04/16/2013 05:58:52 AM, Wang Dongsheng-B40534 wrote:
> Hi scott,
> 
> Could you ACK these patches?
> 
> [PATCH v3 2/4] powerpc/mpic: add global timer support
> [PATCH v3 3/4] powerpc/mpic: create mpic subsystem object
> [PATCH v3 4/4] powerpc/fsl: add MPIC timer wakeup support
> 
> Thanks.
> 
> > -----Original Message-----
> > From: Wang Dongsheng-B40534
> > Sent: Tuesday, April 09, 2013 10:22 AM
> > To: Wood Scott-B07421
> > Cc: linuxppc-dev at lists.ozlabs.org; Wang Dongsheng-B40534
> > Subject: [PATCH v3 1/4] 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>
> > ---
> > v3:
> > * Modify: Change "EINVAL" to "ENXIO" in mpic_irq_set_wake()
> >
> > v2:
> > * Add: Check freescale chip in mpic_irq_set_wake().
> > * Remove: Support mpic_irq_set_wake() in ht_chip.
> >
> >  arch/powerpc/sysdev/mpic.c | 18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> >
> > diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> > index 3b2efd4..ae709d2 100644
> > --- a/arch/powerpc/sysdev/mpic.c
> > +++ b/arch/powerpc/sysdev/mpic.c
> > @@ -920,6 +920,22 @@ 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);
> > +	struct mpic *mpic = mpic_from_irq_data(d);
> > +
> > +	if (!(mpic->flags & MPIC_FSL))
> > +		return -ENXIO;
> > +
> > +	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 +973,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 +988,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
> > --
> > 1.8.0
> 
> 
> 




More information about the Linuxppc-dev mailing list