Because the usb3_aclk device is created during the probe of clk-imx8qxp driver,
but the usb3_lpcg is added to the dpm_list in the parsing of dtb.
Therefore, the usb3_aclk enters the suspend first when the system is suspended.
Since the usb3_lpcg depends on the usb3_aclk, when the usb3_lpcg enters the
suspend When the register cannot be accessed normally, the following calltrace
appears:

Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
Modules linked in:
CPU: 1 PID: 409 Comm: sh Not tainted 5.10.25-yocto-standard #1
Hardware name: Freescale i.MX8QM MEK (DT)
pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--)
pc : imx_clk_lpcg_scu_suspend+0x44/0x60
lr : imx_clk_lpcg_scu_suspend+0x3c/0x60
sp : ffff8000133bba30
x29: ffff8000133bba30 x28: 0000000000000002
x27: ffff80001088fac4 x26: ffff8000119b1200
x25: ffff8000117da49c x24: ffff800011926400
x23: ffff800011a8cf60 x22: 0000000000000000
x21: ffff000810b71410 x20: ffff000810b71410
x19: ffff000810ef0680 x18: 0000000000000020
x17: 0000000000000000 x16: 0000000000000000
x15: 0f130d005a0f171d x14: 75732066666f7265
x13: 0000000000000000 x12: 0000000000000003
x11: 0101010101010101 x10: 0000000000000930
x9 : 7f7f7f7f7f7f7f7f x8 : 626f6b5e686c6367
x7 : 1d170f5a000d130f x6 : 0f130d005a0f171d
x5 : 0000000000000000 x4 : ab9b119afb0b1b60
x3 : 0000000000000043 x2 : 0000000000000009
x1 : ffff000810ef0708 x0 : ffff800012f80000
Call trace:
 imx_clk_lpcg_scu_suspend+0x44/0x60
 pm_generic_suspend_noirq+0x38/0x50
 genpd_finish_suspend+0xb8/0x150
 genpd_suspend_noirq+0x20/0x30
 dpm_run_callback+0x50/0x1c0
 __device_suspend_noirq+0xec/0x244
 dpm_noirq_suspend_devices+0x11c/0x320
 dpm_suspend_noirq+0x30/0xa4
 suspend_devices_and_enter+0x3b0/0x8a0
 pm_suspend+0x288/0x330
 state_store+0x98/0x120
 kobj_attr_store+0x1c/0x30
 sysfs_kf_write+0x50/0x60
 kernfs_fop_write_iter+0x124/0x1b4
 new_sync_write+0xf4/0x190
 vfs_write+0x21c/0x280
 ksys_write+0x78/0x104
 __arm64_sys_write+0x28/0x3c
 el0_svc_common.constprop.0+0x9c/0x1f0
 do_el0_svc+0x78/0xa0
 el0_svc+0x20/0x30
 el0_sync_handler+0x1a4/0x1b0
 el0_sync+0x174/0x180
Code: d2800122 97fd4d7a 34000080 f9400e60 (b9400000)
---[ end trace 22db9b04ad434a5d ]---

In order fix this issue, moving the usb3_lpcg to the same power domain as 
usb3_aclk,
so that we can make sure that the power is not off when the usb3_lpcg is 
suspending.

Signed-off-by: Xiaolei Wang <[email protected]>

Signed-off-by: Bruce Ashfield <[email protected]>
---
 arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi 
b/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi
index 582dbd5eaeea..96d35865b968 100644
--- a/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi
@@ -311,7 +311,7 @@ usb3_lpcg: clock-controller@5b280000 {
                                     "usb3_core_pclk",
                                     "usb3_phy_clk",
                                     "usb3_aclk";
-               power-domains = <&pd IMX_SC_R_USB_2_PHY>;
+               power-domains = <&pd IMX_SC_R_USB_2>;
        };
 
        rawnand_0_lpcg: clock-controller@5b290000 {
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#11287): 
https://lists.yoctoproject.org/g/linux-yocto/message/11287
Mute This Topic: https://lists.yoctoproject.org/mt/91008125/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to