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]] -=-=-=-=-=-=-=-=-=-=-=-
