| 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; |