mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 17:48:58 +00:00
6c90999e2e
This includes BCM4908 support Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
103 lines
3.4 KiB
Diff
103 lines
3.4 KiB
Diff
From ece5ffd9e15e9c8471e58b581a098032a679d34e Mon Sep 17 00:00:00 2001
|
|
From: Al Cooper <alcooperx@gmail.com>
|
|
Date: Fri, 3 Jan 2020 13:18:00 -0500
|
|
Subject: [PATCH] phy: usb: Get all drivers that use USB clks using correct
|
|
enable/disable
|
|
|
|
The BRCM USB Phy, ohci, ehci and xhci drivers all use the USB clocks
|
|
but not all drivers use the clk_prepare_enable/clk_disable_unprepare
|
|
versions to enable/disable the clocks. This change gets all drivers
|
|
using the prepare version.
|
|
|
|
Signed-off-by: Al Cooper <alcooperx@gmail.com>
|
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
|
|
---
|
|
drivers/phy/broadcom/phy-brcm-usb.c | 28 ++++++++++++++--------------
|
|
1 file changed, 14 insertions(+), 14 deletions(-)
|
|
|
|
--- a/drivers/phy/broadcom/phy-brcm-usb.c
|
|
+++ b/drivers/phy/broadcom/phy-brcm-usb.c
|
|
@@ -74,8 +74,8 @@ static int brcm_usb_phy_init(struct phy
|
|
*/
|
|
mutex_lock(&priv->mutex);
|
|
if (priv->init_count++ == 0) {
|
|
- clk_enable(priv->usb_20_clk);
|
|
- clk_enable(priv->usb_30_clk);
|
|
+ clk_prepare_enable(priv->usb_20_clk);
|
|
+ clk_prepare_enable(priv->usb_30_clk);
|
|
brcm_usb_init_common(&priv->ini);
|
|
}
|
|
mutex_unlock(&priv->mutex);
|
|
@@ -106,8 +106,8 @@ static int brcm_usb_phy_exit(struct phy
|
|
mutex_lock(&priv->mutex);
|
|
if (--priv->init_count == 0) {
|
|
brcm_usb_uninit_common(&priv->ini);
|
|
- clk_disable(priv->usb_20_clk);
|
|
- clk_disable(priv->usb_30_clk);
|
|
+ clk_disable_unprepare(priv->usb_20_clk);
|
|
+ clk_disable_unprepare(priv->usb_30_clk);
|
|
}
|
|
mutex_unlock(&priv->mutex);
|
|
phy->inited = false;
|
|
@@ -360,8 +360,8 @@ static int brcm_usb_phy_probe(struct pla
|
|
if (priv->has_eohci)
|
|
brcm_usb_uninit_eohci(&priv->ini);
|
|
brcm_usb_uninit_common(&priv->ini);
|
|
- clk_disable(priv->usb_20_clk);
|
|
- clk_disable(priv->usb_30_clk);
|
|
+ clk_disable_unprepare(priv->usb_20_clk);
|
|
+ clk_disable_unprepare(priv->usb_30_clk);
|
|
|
|
phy_provider = devm_of_phy_provider_register(dev, brcm_usb_phy_xlate);
|
|
|
|
@@ -381,8 +381,8 @@ static int brcm_usb_phy_suspend(struct d
|
|
struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
|
|
|
|
if (priv->init_count) {
|
|
- clk_disable(priv->usb_20_clk);
|
|
- clk_disable(priv->usb_30_clk);
|
|
+ clk_disable_unprepare(priv->usb_20_clk);
|
|
+ clk_disable_unprepare(priv->usb_30_clk);
|
|
}
|
|
return 0;
|
|
}
|
|
@@ -391,8 +391,8 @@ static int brcm_usb_phy_resume(struct de
|
|
{
|
|
struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
|
|
|
|
- clk_enable(priv->usb_20_clk);
|
|
- clk_enable(priv->usb_30_clk);
|
|
+ clk_prepare_enable(priv->usb_20_clk);
|
|
+ clk_prepare_enable(priv->usb_30_clk);
|
|
brcm_usb_init_ipp(&priv->ini);
|
|
|
|
/*
|
|
@@ -405,13 +405,13 @@ static int brcm_usb_phy_resume(struct de
|
|
brcm_usb_init_eohci(&priv->ini);
|
|
} else if (priv->has_eohci) {
|
|
brcm_usb_uninit_eohci(&priv->ini);
|
|
- clk_disable(priv->usb_20_clk);
|
|
+ clk_disable_unprepare(priv->usb_20_clk);
|
|
}
|
|
if (priv->phys[BRCM_USB_PHY_3_0].inited) {
|
|
brcm_usb_init_xhci(&priv->ini);
|
|
} else if (priv->has_xhci) {
|
|
brcm_usb_uninit_xhci(&priv->ini);
|
|
- clk_disable(priv->usb_30_clk);
|
|
+ clk_disable_unprepare(priv->usb_30_clk);
|
|
}
|
|
} else {
|
|
if (priv->has_xhci)
|
|
@@ -419,8 +419,8 @@ static int brcm_usb_phy_resume(struct de
|
|
if (priv->has_eohci)
|
|
brcm_usb_uninit_eohci(&priv->ini);
|
|
brcm_usb_uninit_common(&priv->ini);
|
|
- clk_disable(priv->usb_20_clk);
|
|
- clk_disable(priv->usb_30_clk);
|
|
+ clk_disable_unprepare(priv->usb_20_clk);
|
|
+ clk_disable_unprepare(priv->usb_30_clk);
|
|
}
|
|
|
|
return 0;
|