Messages in this thread | | | Subject | Re: [PATCH] clocksource/drivers/timer-ti-dm: Fix suspend and resume for am3 and am4 | From | Carlos Hernandez <> | Date | Mon, 20 Jul 2020 09:56:50 -0400 |
| |
On 7/17/20 5:34 PM, Carlos Hernandez wrote: > > > On 7/17/20 6:29 AM, Daniel Lezcano wrote: >> On 13/07/2020 18:26, Tony Lindgren wrote: >>> Carlos Hernandez<ceh@ti.com> reported that we now have a suspend and >>> resume regresssion on am3 and am4 compared to the earlier kernels. While >>> suspend and resume works with v5.8-rc3, we now get errors with rtcwake: >>> >>> pm33xx pm33xx: PM: Could not transition all powerdomains to target state >>> ... >>> rtcwake: write error >>> >>> This is because we now fail to idle the system timer clocks that the >>> idle code checks and the error gets propagated to the rtcwake. >>> >>> Turns out there are several issues that need to be fixed: >>> >>> 1. Ignore no-idle and no-reset configured timers for the ti-sysc >>> interconnect target driver as otherwise it will keep the system timer >>> clocks enabled >>> >>> 2. Toggle the system timer functional clock for suspend for am3 and am4 >>> (but not for clocksource on am3) >>> >>> 3. Only reconfigure type1 timers in dmtimer_systimer_disable() >>> >>> 4. Use of_machine_is_compatible() instead of of_device_is_compatible() >>> for checking the SoC type >>> >>> Fixes: 52762fbd1c47 ("clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support") >>> Reported-by: Carlos Hernandez<ceh@ti.com> >>> Signed-off-by: Tony Lindgren<tony@atomide.com> >>> --- >> Carlos, were you able to test this patch ? > > Tested the patch on top of 5.8-rc5. > > cbdb2617290d (HEAD) clocksource/drivers/timer-ti-dm: Fix suspend and > resume for am3 and am4 > 11ba468877bb (tag: v5.8-rc5) Linux 5.8-rc5 > > It works on am335x-evm but fails on am437x-evm > > am3: > > [ 122.541423] PM: suspend entry (deep) > [ 122.545498] Filesystems sync: 0.000 seconds > [ 122.549711] PM: Preparing system for sleep (deep) > [ 122.564217] Freezing user space processes ... (elapsed 0.003 > seconds) done. > [ 122.575110] OOM killer disabled. > [ 122.578370] Freezing remaining freezable tasks ... (elapsed 0.001 > seconds) done. > [ 122.587604] PM: Suspending system (deep) > [ 122.591572] printk: Suspending console(s) (use no_console_suspend to > debug) > [ 122.735877] cpsw 4a100000.ethernet eth0: Link is Down > [ 122.742365] PM: suspend of devices complete after 142.546 msecs > [ 122.742397] PM: start suspend of devices complete after 143.777 msecs > [ 122.748722] PM: late suspend of devices complete after 6.257 msecs > [ 122.754662] PM: noirq suspend of devices complete after 5.632 msecs > [ 122.754689] Disabling non-boot CPUs ... > [ 122.754715] pm33xx pm33xx: PM: Successfully put all powerdomains to > target state > [ 122.754715] PM: Wakeup source RTC Alarm > [ 122.766169] ti-sysc 4a101200.target-module: OCP softreset timed out > [ 122.769222] PM: noirq resume of devices complete after 14.367 msecs > [ 122.772956] PM: early resume of devices complete after 3.428 msecs > [ 122.775749] cpsw 4a100000.ethernet: initializing cpsw version 1.12 (0) > [ 122.857132] Qualcomm Atheros AR8031/AR8033 4a101000.mdio:00: > attached PHY driver [Qualcomm Atheros AR8031/AR8033] > (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL) > [ 122.874236] ti-sysc 4802a000.target-module: OCP softreset timed out > [ 122.879559] PM: Timekeeping suspended for 18.212 seconds > [ 122.994120] PM: resume of devices complete after 221.091 msecs > [ 123.101133] PM: Finishing wakeup. > [ 123.104493] OOM killer enabled. > [ 123.107657] Restarting tasks ... done. > [ 123.168294] PM: suspend exit > [ 126.005262] cpsw 4a100000.ethernet eth0: Link is Up - 1Gbps/Full - > flow control off > [ 122.742365] PM: suspend of devices complete after 142.546 msecs > > > am4: > > |TRACE LOG|Inside do_cmd:CMD=echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode| > |TRACE LOG|suspend function: power_state: mem| > |TRACE LOG|suspend function: max_stime: 10| > |TRACE LOG|suspend function: max_atime: 5| > |TRACE LOG|suspend function: iterations: 2| > |TRACE LOG|suspend function: usb_remove: 0| > |TRACE LOG|suspend function: usb_module: | > |TRACE LOG|===suspend iteration 0===| > sh1577:1590898691->1590898692(1):: wakeup - 9 sec 0 msec > sh1577:1590898691->1590898692(1):: Use rtc to suspend resume, adding 10 secs to suspend time > rtcwake: wakeup from "mem" using /dev/rtc0 at Sun May 31 04:18:33 2020 > [ 106.401004] PM: suspend entry (deep) > [ 106.420151] Filesystems sync: 0.015 seconds > [ 106.424598] PM: Preparing system for sleep (deep) > [ 106.434312] Freezing user space processes ... (elapsed 0.001 seconds) done. > [ 106.442808] OOM killer disabled. > [ 106.446152] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. > [ 106.454894] PM: Suspending system (deep) > [ 106.458893] printk: Suspending console(s) (use no_console_suspend to debug) > CCCCCCCC** 1196 printk messages dropped ** > [ 107.379605] [<c0573bd8>] (gic_handle_irq) from [<c0100b6c>] (__irq_svc+0x6c/0x90) > ** 41 printk messages dropped ** > [ 107.412635] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 5.8.0-rc5-00001-gcbdb2617290d #1 > ** 37 printk messages dropped ** > [ 107.429822] [<c0198358>] (handle_irq_event) from [<c019cdf8>] (handle_fasteoi_irq+0xc4/0x188) > ** 37 printk messages dropped ** > [ 107.446915] [<c09573f8>] (cpu_idle_poll) from [<c016d0e4>] (do_idle+0x7c/0x2b4) > [ 107.446946] [<c016d0e4>] (do_idle) from [<c016d5d4>] (cpu_startup_entry+0x18/0x1c) > ** 34 printk messages dropped ** > [ 107.479851] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 5.8.0-rc5-00001-gcbdb2617290d #1 > ** 42 printk messages dropped ** > [ 107.497182] Exception stack(0xc0e01f10 to 0xc0e01f58) > [ 107.497202] 1f00: 000429e8 00000000 c0e00000 00000001 > ** 34 printk messages dropped ** > [ 107.514208] ---[ end trace c18ea2591ccbc697 ]--- > [ 107.524884] usb 1-1: reset high-speed USB device number 2 using xhci-hcd > ** 34 printk messages dropped ** > [ 107.547126] [<c0111b08>] (unwind_backtrace) from [<c010ba54>] (show_stack+0x10/0x14) > [ 107.547164] [<c010ba54>] (show_stack) from [<c055ad98>] (dump_stack+0xc4/0xe0) > ** 42 printk messages dropped ** > [ 107.564441] 1e60: c0e00000 00000002 ffffb4d5 c0e01e88 c013f95c c01012fc 60000153 ffffffff > [ 107.564473] [<c0100b6c>] (__irq_svc) from [<c01012fc>] (__do_softirq+0x7c/0x390) > ** 43 printk messages dropped ** > [ 107.597112] 44000000.ocp:L3 Custom Error: MASTER DSS TARGET GPMC (Read): Data Access in User mode during Functional access > ** 34 printk messages dropped ** > [ 107.614456] [<c0138a40>] (__warn) from [<c0138e08>] (warn_slowpath_fmt+0x90/0xc0) > [ 107.614491] [<c0138e08>] (warn_slowpath_fmt) from [<c057581c>] (l3_interrupt_handler+0x250/0x370) > ** 42 printk messages dropped ** > [ 107.631781] [<c016d0e4>] (do_idle) from [<c016d5d4>] (cpu_startup_entry+0x18/0x1c) > ** 35 printk messages dropped ** > [ 107.664649] Hardware name: Generic AM43 (Flattened Device Tree) > [ 107.664711] [<c0111b08>] (unwind_backtrace) from [<c010ba54>] (show_stack+0x10/0x14) > ** 42 printk messages dropped ** > [ 107.682068] 1f20: c0e00000 c0e05234 c0ec3b9c c0e05234 00000000 c0d48a40 c0d766b0 c0e055e0 > [ 107.682089] 1f40: 00000000 c0e01f60 c0957380 c09573d0 20000153 ffffffff > ** 38 printk messages dropped ** > [ 107.720215] CPU: 0 PID: 1604 Comm: rtcwake Tainted: G W 5.8.0-rc5-00001-gcbdb2617290d #1 > ** 44 printk messages dropped ** > [ 107.734583] CPU: 0 PID: 1604 Comm: rtcwake Tainted: G W 5.8.0-rc5-00001-gcbdb2617290d #1 > [ 107.734594] Hardware name: Generic AM43 (Flattened Device Tree) > ** 39 printk messages dropped ** > [ 107.747964] ti-sysc 44e0b000.target-module: OCP softreset timed out > > -- > Carlos
-- Carlos
| |