Commit ece5ffd9 authored by Al Cooper's avatar Al Cooper Committed by Kishon Vijay Abraham I

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: default avatarAl Cooper <alcooperx@gmail.com>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
parent dc9aa43c
...@@ -74,8 +74,8 @@ static int brcm_usb_phy_init(struct phy *gphy) ...@@ -74,8 +74,8 @@ static int brcm_usb_phy_init(struct phy *gphy)
*/ */
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
if (priv->init_count++ == 0) { if (priv->init_count++ == 0) {
clk_enable(priv->usb_20_clk); clk_prepare_enable(priv->usb_20_clk);
clk_enable(priv->usb_30_clk); clk_prepare_enable(priv->usb_30_clk);
brcm_usb_init_common(&priv->ini); brcm_usb_init_common(&priv->ini);
} }
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
...@@ -106,8 +106,8 @@ static int brcm_usb_phy_exit(struct phy *gphy) ...@@ -106,8 +106,8 @@ static int brcm_usb_phy_exit(struct phy *gphy)
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
if (--priv->init_count == 0) { if (--priv->init_count == 0) {
brcm_usb_uninit_common(&priv->ini); brcm_usb_uninit_common(&priv->ini);
clk_disable(priv->usb_20_clk); clk_disable_unprepare(priv->usb_20_clk);
clk_disable(priv->usb_30_clk); clk_disable_unprepare(priv->usb_30_clk);
} }
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
phy->inited = false; phy->inited = false;
...@@ -360,8 +360,8 @@ static int brcm_usb_phy_probe(struct platform_device *pdev) ...@@ -360,8 +360,8 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
if (priv->has_eohci) if (priv->has_eohci)
brcm_usb_uninit_eohci(&priv->ini); brcm_usb_uninit_eohci(&priv->ini);
brcm_usb_uninit_common(&priv->ini); brcm_usb_uninit_common(&priv->ini);
clk_disable(priv->usb_20_clk); clk_disable_unprepare(priv->usb_20_clk);
clk_disable(priv->usb_30_clk); clk_disable_unprepare(priv->usb_30_clk);
phy_provider = devm_of_phy_provider_register(dev, brcm_usb_phy_xlate); phy_provider = devm_of_phy_provider_register(dev, brcm_usb_phy_xlate);
...@@ -381,8 +381,8 @@ static int brcm_usb_phy_suspend(struct device *dev) ...@@ -381,8 +381,8 @@ static int brcm_usb_phy_suspend(struct device *dev)
struct brcm_usb_phy_data *priv = dev_get_drvdata(dev); struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
if (priv->init_count) { if (priv->init_count) {
clk_disable(priv->usb_20_clk); clk_disable_unprepare(priv->usb_20_clk);
clk_disable(priv->usb_30_clk); clk_disable_unprepare(priv->usb_30_clk);
} }
return 0; return 0;
} }
...@@ -391,8 +391,8 @@ static int brcm_usb_phy_resume(struct device *dev) ...@@ -391,8 +391,8 @@ static int brcm_usb_phy_resume(struct device *dev)
{ {
struct brcm_usb_phy_data *priv = dev_get_drvdata(dev); struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
clk_enable(priv->usb_20_clk); clk_prepare_enable(priv->usb_20_clk);
clk_enable(priv->usb_30_clk); clk_prepare_enable(priv->usb_30_clk);
brcm_usb_init_ipp(&priv->ini); brcm_usb_init_ipp(&priv->ini);
/* /*
...@@ -405,13 +405,13 @@ static int brcm_usb_phy_resume(struct device *dev) ...@@ -405,13 +405,13 @@ static int brcm_usb_phy_resume(struct device *dev)
brcm_usb_init_eohci(&priv->ini); brcm_usb_init_eohci(&priv->ini);
} else if (priv->has_eohci) { } else if (priv->has_eohci) {
brcm_usb_uninit_eohci(&priv->ini); 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) { if (priv->phys[BRCM_USB_PHY_3_0].inited) {
brcm_usb_init_xhci(&priv->ini); brcm_usb_init_xhci(&priv->ini);
} else if (priv->has_xhci) { } else if (priv->has_xhci) {
brcm_usb_uninit_xhci(&priv->ini); brcm_usb_uninit_xhci(&priv->ini);
clk_disable(priv->usb_30_clk); clk_disable_unprepare(priv->usb_30_clk);
} }
} else { } else {
if (priv->has_xhci) if (priv->has_xhci)
...@@ -419,8 +419,8 @@ static int brcm_usb_phy_resume(struct device *dev) ...@@ -419,8 +419,8 @@ static int brcm_usb_phy_resume(struct device *dev)
if (priv->has_eohci) if (priv->has_eohci)
brcm_usb_uninit_eohci(&priv->ini); brcm_usb_uninit_eohci(&priv->ini);
brcm_usb_uninit_common(&priv->ini); brcm_usb_uninit_common(&priv->ini);
clk_disable(priv->usb_20_clk); clk_disable_unprepare(priv->usb_20_clk);
clk_disable(priv->usb_30_clk); clk_disable_unprepare(priv->usb_30_clk);
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment