devm_clock_get_enabled() can be used to simplify clock handling for the
PER register clock.

Signed-off-by: Maxime Chevallier <maxime.chevall...@bootlin.com>
---
- v2: new patch

 .../ethernet/freescale/fs_enet/fs_enet-main.c    | 16 ++++------------
 drivers/net/ethernet/freescale/fs_enet/fs_enet.h |  2 --
 2 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c 
b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
index caca81b3ccb6..372970326238 100644
--- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
+++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
@@ -907,14 +907,9 @@ static int fs_enet_probe(struct platform_device *ofdev)
         * but require enable to succeed when a clock was specified/found,
         * keep a reference to the clock upon successful acquisition
         */
-       clk = devm_clk_get(&ofdev->dev, "per");
-       if (!IS_ERR(clk)) {
-               ret = clk_prepare_enable(clk);
-               if (ret)
-                       goto out_deregister_fixed_link;
-
-               fpi->clk_per = clk;
-       }
+       clk = devm_clk_get_enabled(&ofdev->dev, "per");
+       if (IS_ERR(clk))
+               goto out_deregister_fixed_link;
 
        privsize = sizeof(*fep) +
                   sizeof(struct sk_buff **) *
@@ -924,7 +919,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
        ndev = alloc_etherdev(privsize);
        if (!ndev) {
                ret = -ENOMEM;
-               goto out_put;
+               goto out_deregister_fixed_link;
        }
 
        SET_NETDEV_DEV(ndev, &ofdev->dev);
@@ -986,8 +981,6 @@ static int fs_enet_probe(struct platform_device *ofdev)
        fep->ops->cleanup_data(ndev);
 out_free_dev:
        free_netdev(ndev);
-out_put:
-       clk_disable_unprepare(fpi->clk_per);
 out_deregister_fixed_link:
        of_node_put(fpi->phy_node);
        if (of_phy_is_fixed_link(ofdev->dev.of_node))
@@ -1008,7 +1001,6 @@ static void fs_enet_remove(struct platform_device *ofdev)
        fep->ops->cleanup_data(ndev);
        dev_set_drvdata(fep->dev, NULL);
        of_node_put(fep->fpi->phy_node);
-       clk_disable_unprepare(fep->fpi->clk_per);
        if (of_phy_is_fixed_link(ofdev->dev.of_node))
                of_phy_deregister_fixed_link(ofdev->dev.of_node);
        free_netdev(ndev);
diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet.h 
b/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
index 781f506c933c..cd2c7d1a7b2a 100644
--- a/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
+++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
@@ -120,8 +120,6 @@ struct fs_platform_info {
        int napi_weight;        /* NAPI weight                  */
 
        int use_rmii;           /* use RMII mode                */
-
-       struct clk *clk_per;    /* 'per' clock for register access */
 };
 
 struct fs_enet_private {
-- 
2.45.2


Reply via email to