(EXT) [PATCH] i2c: imx: add irqf_no_suspend

Wolfram Sang wsa at kernel.org
Sat May 21 03:24:16 PDT 2022


Hi everyone,

> > The i2c irq is masked when pcie starts a i2c transfer process
> > during noirq suspend stage. As a result, i2c transfer fails.
> > To solve the problem, IRQF_NO_SUSPEND is added to i2c bus.
> > 
> > Signed-off-by: Gao Pan <b54642 at freescale.com>
> > Signed-off-by: Fugang Duan <B38611 at freescale.com>
> > Signed-off-by: Vipul Kumar <vipul_kumar at mentor.com>

The SoB from Alifer Moraes is missing, too.

> > goto rpm_disable;
> > 
> >  	/* Request IRQ */
> > -	ret = request_threaded_irq(irq, i2c_imx_isr, NULL, IRQF_SHARED,
> > +	ret = request_threaded_irq(irq, i2c_imx_isr, NULL,
> > +				   IRQF_SHARED | IRQF_NO_SUSPEND,
> >  				   pdev->name, i2c_imx);
> >  	if (ret) {
> >  		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
> 
> 
> I stumbled across Documentation/power/suspend-and-interrupts.rst which states:
> > For this reason, using IRQF_NO_SUSPEND and IRQF_SHARED at the
> > same time should be avoided.
> Given this IMHO at least a comment should be inserted why this is fine. I dont 
> have a full picture about the situation, but to me it seems there is a 
> reference missing, or why/how does some PCIe start some I2C transfer when the
> controller is suspended already? Do I miss something?

Thank you for this comment, Alexander. I second you, this needs
explanation.

Happy hacking,

   Wolfram

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20220521/68be6ca6/attachment-0001.sig>


More information about the linux-arm-kernel mailing list