]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
authorAndré Draszik <andre.draszik@linaro.org>
Thu, 5 Dec 2024 10:22:00 +0000 (10:22 +0000)
committerVinod Koul <vkoul@kernel.org>
Fri, 14 Feb 2025 12:28:21 +0000 (17:58 +0530)
We currently don't gate the power to the SS phy in phy_exit().

Shuffle the code slightly to ensure the power is gated to the SS phy as
well.

Fixes: 32267c29bc7d ("phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)")
CC: stable@vger.kernel.org # 6.11+
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://lore.kernel.org/r/20241205-gs101-usb-phy-fix-v4-1-0278809fb810@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/samsung/phy-exynos5-usbdrd.c

index 4a108fdab118c0edd76bd88dc9dbf6a498e064b3..46b8f6987c62c3afdc2f6824f9187dc520693e6d 100644 (file)
@@ -1296,14 +1296,17 @@ static int exynos5_usbdrd_gs101_phy_exit(struct phy *phy)
        struct exynos5_usbdrd_phy *phy_drd = to_usbdrd_phy(inst);
        int ret;
 
+       if (inst->phy_cfg->id == EXYNOS5_DRDPHY_UTMI) {
+               ret = exynos850_usbdrd_phy_exit(phy);
+               if (ret)
+                       return ret;
+       }
+
+       exynos5_usbdrd_phy_isol(inst, true);
+
        if (inst->phy_cfg->id != EXYNOS5_DRDPHY_UTMI)
                return 0;
 
-       ret = exynos850_usbdrd_phy_exit(phy);
-       if (ret)
-               return ret;
-
-       exynos5_usbdrd_phy_isol(inst, true);
        return regulator_bulk_disable(phy_drd->drv_data->n_regulators,
                                      phy_drd->regulators);
 }