All of lore.kernel.org
 help / color / mirror / Atom feed
From: Carlos Hernandez <ceh@ti.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>,
	Tony Lindgren <tony@atomide.com>,
	Thomas Gleixner <tglx@linutronix.de>
Cc: <linux-kernel@vger.kernel.org>, <linux-omap@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] clocksource/drivers/timer-ti-dm: Fix suspend and resume for am3 and am4
Date: Mon, 20 Jul 2020 09:56:50 -0400	[thread overview]
Message-ID: <10b49f3f-7778-b391-27ca-0d28b282a55d@ti.com> (raw)
In-Reply-To: <f96cb9d8-c940-672a-b1d2-a26570d6f775@ti.com>


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


WARNING: multiple messages have this Message-ID (diff)
From: Carlos Hernandez <ceh@ti.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>,
	Tony Lindgren <tony@atomide.com>,
	Thomas Gleixner <tglx@linutronix.de>
Cc: linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] clocksource/drivers/timer-ti-dm: Fix suspend and resume for am3 and am4
Date: Mon, 20 Jul 2020 09:56:50 -0400	[thread overview]
Message-ID: <10b49f3f-7778-b391-27ca-0d28b282a55d@ti.com> (raw)
In-Reply-To: <f96cb9d8-c940-672a-b1d2-a26570d6f775@ti.com>


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


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-07-20 13:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-13 16:26 [PATCH] clocksource/drivers/timer-ti-dm: Fix suspend and resume for am3 and am4 Tony Lindgren
2020-07-13 16:26 ` Tony Lindgren
2020-07-15 10:17 ` Grygorii Strashko
2020-07-15 10:17   ` Grygorii Strashko
2020-07-15 17:32   ` Tony Lindgren
2020-07-15 17:32     ` Tony Lindgren
2020-07-15 18:43     ` Grygorii Strashko
2020-07-15 18:43       ` Grygorii Strashko
2020-07-17 10:29 ` Daniel Lezcano
2020-07-17 10:29   ` Daniel Lezcano
     [not found]   ` <f96cb9d8-c940-672a-b1d2-a26570d6f775@ti.com>
2020-07-20 13:56     ` Carlos Hernandez [this message]
2020-07-20 13:56       ` Carlos Hernandez
2020-07-20 14:30     ` Tony Lindgren
2020-07-20 14:30       ` Tony Lindgren
2020-07-21  3:35       ` Sekhar Nori
2020-07-21  3:35         ` Sekhar Nori
2020-07-21 13:11   ` Carlos Hernandez
2020-07-21 13:11     ` Carlos Hernandez
2020-07-21 13:49     ` Daniel Lezcano
2020-07-21 13:49       ` Daniel Lezcano
2020-07-21 16:15 ` [tip: timers/urgent] " tip-bot2 for Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10b49f3f-7778-b391-27ca-0d28b282a55d@ti.com \
    --to=ceh@ti.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.