phy: usb: Use slow clock for wake enabled suspend
authorJustin Chen <justinpopo6@gmail.com>
Wed, 5 Oct 2022 21:30:17 +0000 (14:30 -0700)
committerVinod Koul <vkoul@kernel.org>
Mon, 7 Nov 2022 04:50:25 +0000 (10:20 +0530)
The logic was incorrect when switching to slow clock. We want the slow
clock if wake_enabled is set.

Fixes: ae532b2b7aa5 ("phy: usb: Add "wake on" functionality for newer Synopsis XHCI controllers")
Signed-off-by: Justin Chen <justinpopo6@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/1665005418-15807-6-git-send-email-justinpopo6@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c

index 6a4d478..f78cff2 100644 (file)
@@ -337,13 +337,12 @@ static void usb_uninit_common_7216(struct brcm_usb_init_params *params)
 
        pr_debug("%s\n", __func__);
 
-       if (!params->wake_enabled) {
-               USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN);
-
+       if (params->wake_enabled) {
                /* Switch to using slower clock during suspend to save power */
                USB_CTRL_SET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN);
-       } else {
                usb_wake_enable_7216(params, true);
+       } else {
+               USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN);
        }
 }