net: ethernet: mediatek: add mtk_hw_deinit call as the opposite to mtk_hw_init call
authorSean Wang <sean.wang@mediatek.com>
Wed, 14 Sep 2016 15:13:16 +0000 (23:13 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Sep 2016 06:22:56 +0000 (02:22 -0400)
grouping things related to the deinitialization of what
mtk_hw_init call does that help to be reused by the reset
process and the error path handling.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c

index 616170137588ed48b5e50f976a9c2ed7fc704e47..1f756bd2d18fecf69db933ba23d2783656bed085 100644 (file)
@@ -1477,6 +1477,16 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
        return 0;
 }
 
+static int mtk_hw_deinit(struct mtk_eth *eth)
+{
+       clk_disable_unprepare(eth->clks[MTK_CLK_GP2]);
+       clk_disable_unprepare(eth->clks[MTK_CLK_GP1]);
+       clk_disable_unprepare(eth->clks[MTK_CLK_ESW]);
+       clk_disable_unprepare(eth->clks[MTK_CLK_ETHIF]);
+
+       return 0;
+}
+
 static int __init mtk_init(struct net_device *dev)
 {
        struct mtk_mac *mac = netdev_priv(dev);
@@ -1926,10 +1936,7 @@ static int mtk_remove(struct platform_device *pdev)
                mtk_stop(eth->netdev[i]);
        }
 
-       clk_disable_unprepare(eth->clks[MTK_CLK_ETHIF]);
-       clk_disable_unprepare(eth->clks[MTK_CLK_ESW]);
-       clk_disable_unprepare(eth->clks[MTK_CLK_GP1]);
-       clk_disable_unprepare(eth->clks[MTK_CLK_GP2]);
+       mtk_hw_deinit(eth);
 
        netif_napi_del(&eth->tx_napi);
        netif_napi_del(&eth->rx_napi);