Re: [PATCHv2] i2c: omap: Use noirq system sleep pm ops to idle device for suspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 21 Feb 2019 13:26:03 -0800
Tony Lindgren <tony@xxxxxxxxxxx> wrote:

> * Andreas Kemnade <andreas@xxxxxxxxxxxx> [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

Attachment: pgp243cRNNRth.pgp
Description: OpenPGP digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux