[PATCH v6 1/2] irqchip: imx-gpcv2: IMX GPCv2 driver for wakeup sources

Shenwei Wang Shenwei.Wang at freescale.com
Mon Jul 27 06:58:17 PDT 2015


> -----Original Message-----
> From: Thomas Gleixner [mailto:tglx at linutronix.de]
> Sent: 2015年7月26日 6:48
> To: Wang Shenwei-B38339
> Cc: shawn.guo at linaro.org; jason at lakedaemon.net;
> linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; Huang
> Yongcai-B20788
> Subject: Re: [PATCH v6 1/2] irqchip: imx-gpcv2: IMX GPCv2 driver for wakeup
> sources
> 
> On Wed, 22 Jul 2015, Shenwei Wang wrote:
> > +static int imx_gpcv2_irq_set_wake(struct irq_data *d, unsigned int
> > +on) {
> > +	struct imx_gpcv2_irq *cd = d->chip_data;
> > +	unsigned int idx = d->hwirq / 32;
> > +	unsigned long flags;
> > +	void __iomem *reg;
> > +	u32 mask, val;
> > +
> > +	raw_spin_lock_irqsave(&cd->lock.rlock, flags);
> 
> Oh no. You need to make cd->lock a raw_spinlock and then use
> raw_spin_lock_irqsave() on it. How on earth did you come up with this hackery?

I was thinking to use one spin_lock between the current two modules. But it should be 
okay to use a dedicate one for irqchip.

> Thanks,
> 
> 	tglx


More information about the linux-arm-kernel mailing list