[Letux-kernel] [PATCHv2] i2c: omap: Use noirq system sleep pm ops to idle device for suspend
Andreas Kemnade
andreas at kemnade.info
Thu Feb 21 22:44:56 CET 2019
On Thu, 21 Feb 2019 13:26:03 -0800
Tony Lindgren <tony at atomide.com> wrote:
> * Andreas Kemnade <andreas at kemnade.info> [190221 21:05]:
> > this one breaks my system: gta04 (dm3730 + twl4030)
> > loaded a minimal set of things:
> >
> > root@(none):/# rtcwake -s 10 -m mem
> > rtcwake: wakeup from "mem" using /dev/rtc0 at Sat Jan 1 00:04:01 2000
> > [ 50.857360] PM: suspend entry (deep)
> > [ 50.861480] PM: Syncing filesystems ... done.
> > [ 50.881561] Freezing user space processes ... (elapsed 0.003 seconds) done.
> > [ 50.893493] OOM killer disabled.
> > [ 50.896911] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
> > [ 50.908050] printk: Suspending console(s) (use no_console_suspend to debug)
> > [ 50.978393] Disabling non-boot CPUs ...
> > [ 50.978485] Successfully put all powerdomains to target state
> > [ 50.986816] twl: Read failed (mod 1, reg 0x01 count 1)
> > [ 50.986846] twl4030: I2C error -13 reading PIH ISR
> > [ 50.986907] twl: Read failed (mod 1, reg 0x01 count 1)
> > [ 50.986907] twl4030: I2C error -13 reading PIH ISR
> > [ 50.986968] twl: Read failed (mod 1, reg 0x01 count 1)
> > [ 50.986968] twl4030: I2C error -13 reading PIH ISR
> > [ 50.987030] twl: Read failed (mod 1, reg 0x01 count 1)
>
> Interesting, sorry about that. I'm not seeing here with dm3730 + twl4030
> logicpd torpedo:
>
> [ 79.150573] PM: suspend entry (deep)
> [ 79.154235] PM: Syncing filesystems ... done.
> [ 79.161437] Freezing user space processes ... (elapsed 0.002 seconds) done.
> [ 79.170898] OOM killer disabled.
> [ 79.174163] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
> [ 79.183685] printk: Suspending console(s) (use no_console_suspend to debug)
> [ 79.231964] Disabling non-boot CPUs ...
> [ 79.231994] Successfully put all powerdomains to target state
> [ 79.271209] OOM killer enabled.
> [ 79.274383] Restarting tasks ... done.
> [ 79.284088] PM: suspend exit
>
> I wonder what code is trying to do the twl i2c reads that late
> into suspend?
>
well, I rather guess early after resume. These read failures come
endlessly. My theory is that:
- system is woken up by twl irq (here: rtc alarm)
- twl code tries to handle that by reading the irq registers
- read fails (because omap-i2c is in a non-working state)
- irq stays
- reading is retried but failed again.
Doing more research here:
The key point is to wake up via twl4030 irq (here the rtc alarm).
This does not happen when I am not waking up via twl irq
but via some other pinctl irq of the wkup domain.
Regards,
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.goldelico.com/pipermail/letux-kernel/attachments/20190221/7c8484fd/attachment.asc>
More information about the Letux-kernel
mailing list