diff options
author | André Draszik <andre.draszik@linaro.org> | 2024-12-05 10:22:00 +0000 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2025-02-14 17:58:21 +0530 |
commit | 8789b4296aa796f658a19cac7d27365012893de1 (patch) | |
tree | 832b88e932b0a269bc34b3bfc962b08c48c9738d | |
parent | cd57e4327707126dca3f9517b84274c001d4c184 (diff) | |
download | linux-8789b4296aa796f658a19cac7d27365012893de1.tar.gz linux-8789b4296aa796f658a19cac7d27365012893de1.tar.bz2 linux-8789b4296aa796f658a19cac7d27365012893de1.zip |
phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit()
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>
-rw-r--r-- | drivers/phy/samsung/phy-exynos5-usbdrd.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c index 4a108fdab118..46b8f6987c62 100644 --- a/drivers/phy/samsung/phy-exynos5-usbdrd.c +++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c @@ -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); } |