]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
phy: usb: Get all drivers that use USB clks using correct enable/disable
authorAl Cooper <alcooperx@gmail.com>
Fri, 3 Jan 2020 18:18:00 +0000 (13:18 -0500)
committerKishon Vijay Abraham I <kishon@ti.com>
Wed, 8 Jan 2020 07:28:06 +0000 (12:58 +0530)
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

index f5c1f2983a1d1cd954b9ef6af39571be4e35b9b4..217e3702ef4e5254a9af5474f3b4d6615bfb4046 100644 (file)
@@ -74,8 +74,8 @@ static int brcm_usb_phy_init(struct phy *gphy)
         */
        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 *gphy)
        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 platform_device *pdev)
        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 device *dev)
        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 device *dev)
 {
        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 device *dev)
                        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 device *dev)
                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;