bcm63xx_enet: properly prepare/unprepare clocks before/after usage
authorJonas Gorski <jogo@openwrt.org>
Sun, 10 Mar 2013 03:57:49 +0000 (03:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 10 Mar 2013 20:57:01 +0000 (16:57 -0400)
Use clk_prepare_enable/disable_unprepare calls in preparation for
switching to the generic clock framework.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
Acked-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bcm63xx_enet.c

index b45e5fd46df61d53f120f225359ddc0be7a2029c..db343a1d083576c5e511dcf0d2c5175d98c84a37 100644 (file)
@@ -1670,7 +1670,7 @@ static int bcm_enet_probe(struct platform_device *pdev)
                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 platform_device *pdev)
                        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 platform_device *pdev)
 
        /* 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);