[Letux-kernel] [PATCHv2] i2c: omap: Use noirq system sleep pm ops to idle device for suspend
Tony Lindgren
tony at atomide.com
Fri Feb 22 18:25:04 CET 2019
* Andreas Kemnade <andreas at kemnade.info> [190222 17:09]:
> Tony Lindgren <tony at atomide.com> wrote:
> > It's probaby some twl related code is (wrongly) trying to read/write
> > registers at noirq suspend level. Sounds like some driver tagged with
> > noirq suspend ops while it should not.
> >
> static irqreturn_t handle_twl4030_pih(int irq, void *devid)
> in
> drivers/mfd/twl4030-irq.c
> is doing the failed i2c access.
I wonder if tagging drivers/mfd/twl4030-irq.c request_threaded_irq
with IRQF_NO_SUSPEND in addition to IRQF_ONESHOT might help if this
triggers right after resume_device_irqs()? Or do we already have
IRQF_NO_SUSPEND set and some interrupt like USB battery charging
is triggering during suspend?
The sys_nirq interrupt can trigger at any point for sure. But we
can't access the i2c registers until the system is back up again.
Regards,
Tony
More information about the Letux-kernel
mailing list