63 lines
1.8 KiB
Diff
63 lines
1.8 KiB
Diff
|
From 8d6b746129f11efe4ba69aeb2c982359d33c6ec3 Mon Sep 17 00:00:00 2001
|
||
|
From: Jonas Gorski <jogo@openwrt.org>
|
||
|
Date: Mon, 10 Sep 2012 01:28:47 +0200
|
||
|
Subject: [PATCH 3/3] bcm63xx_enet: properly prepare/unprepare clocks
|
||
|
before/after usage
|
||
|
|
||
|
Use clk_prepare_enable/disable_unprepare calls in preparation for
|
||
|
switching to the generic clock framework.
|
||
|
|
||
|
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||
|
---
|
||
|
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||
|
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
|
||
|
@@ -1670,7 +1670,7 @@ static int bcm_enet_probe(struct platfor
|
||
|
ret = PTR_ERR(priv->mac_clk);
|
||
|
goto out;
|
||
|
}
|
||
|
- clk_enable(priv->mac_clk);
|
||
|
+ clk_prepare_enable(priv->mac_clk);
|
||
|
|
||
|
/* initialize default and fetch platform data */
|
||
|
priv->rx_ring_size = BCMENET_DEF_RX_DESC;
|
||
|
@@ -1699,7 +1699,7 @@ static int bcm_enet_probe(struct platfor
|
||
|
priv->phy_clk = NULL;
|
||
|
goto out_put_clk_mac;
|
||
|
}
|
||
|
- clk_enable(priv->phy_clk);
|
||
|
+ clk_prepare_enable(priv->phy_clk);
|
||
|
}
|
||
|
|
||
|
/* do minimal hardware init to be able to probe mii bus */
|
||
|
@@ -1800,12 +1800,12 @@ out_uninit_hw:
|
||
|
/* turn off mdc clock */
|
||
|
enet_writel(priv, 0, ENET_MIISC_REG);
|
||
|
if (priv->phy_clk) {
|
||
|
- clk_disable(priv->phy_clk);
|
||
|
+ clk_disable_unprepare(priv->phy_clk);
|
||
|
clk_put(priv->phy_clk);
|
||
|
}
|
||
|
|
||
|
out_put_clk_mac:
|
||
|
- clk_disable(priv->mac_clk);
|
||
|
+ clk_disable_unprepare(priv->mac_clk);
|
||
|
clk_put(priv->mac_clk);
|
||
|
out:
|
||
|
free_netdev(dev);
|
||
|
@@ -1843,10 +1843,10 @@ static int bcm_enet_remove(struct platfo
|
||
|
|
||
|
/* disable hw block clocks */
|
||
|
if (priv->phy_clk) {
|
||
|
- clk_disable(priv->phy_clk);
|
||
|
+ clk_disable_unprepare(priv->phy_clk);
|
||
|
clk_put(priv->phy_clk);
|
||
|
}
|
||
|
- clk_disable(priv->mac_clk);
|
||
|
+ clk_disable_unprepare(priv->mac_clk);
|
||
|
clk_put(priv->mac_clk);
|
||
|
|
||
|
platform_set_drvdata(pdev, NULL);
|