USB3 clock already disabled/unprepared with hibernate

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB3 clock already disabled/unprepared with hibernate

370 Views
ripplejr
Contributor II

I'm working with an i.MX8QXP RevC A35 with the 5.15.32_2.0.0 BSP. I'm encountering a usb3 warning when going into hibernate that says the usb3 clks are already disabled/unprepared. After tracing the stack call it looks like usb3 clocks are disabled twice during hibernation. Once with runtime suspend and again with dpm suspend. I suspect it comes from line 406 in drivers/usb/cdns3/cdns3-imx.c since the runtime and system suspend functions are the same (cdns_imx_suspend).

static const struct dev_pm_ops cdns_imx_pm_ops = {
    SET_RUNTIME_PM_OPS(cdns_imx_suspend, cdns_imx_resume, NULL)
    SET_SYSTEM_SLEEP_PM_OPS(cdns_imx_suspend, cdns_imx_system_resume)
};

 

Steps to reproduce.

1. Have the kernel built with

CONFIG_USB=y

CONFIG_USB_CDNS_SUPPORT=m

2. Once booted and with a usb3 device plugged in

pm-hibernate

 

I've uploaded two logs, the usb3 clk stack trace log I inserted code to show a stack trace every time usb3_core_pclk is disabled/enabled/unprepared in clk.c. This shows that the system tries to disable the clock twice. The usb3 stack trace log shows the default behavior where various usb3 clocks are getting a warning when hibernating.

0 Kudos
Reply
0 Replies