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

From: Wolfram Sang
Date: Sat May 21 2022 - 06:25:16 EST


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@xxxxxxxxxxxxx>
> > Signed-off-by: Fugang Duan <B38611@xxxxxxxxxxxxx>
> > Signed-off-by: Vipul Kumar <vipul_kumar@xxxxxxxxxx>

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

Attachment: signature.asc
Description: PGP signature