net: stmmac: dwmac-visconti: use devm_stmmac_probe_config_dt()
authorJisheng Zhang <jszhang@kernel.org>
Sat, 16 Sep 2023 07:58:27 +0000 (15:58 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 Sep 2023 11:44:36 +0000 (12:44 +0100)
Simplify the driver's probe() function by using the devres
variant of stmmac_probe_config_dt().

The calling of stmmac_pltfr_remove() now needs to be switched to
stmmac_pltfr_remove_no_dt().

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/dwmac-visconti.c

index 22d113fb8e09cb0db115f3c4ea3d20b635998a9c..45f5d66a11c268861fd4ddb8f429d84b7c63bc5b 100644 (file)
@@ -220,15 +220,13 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       plat_dat = stmmac_probe_config_dt(pdev, stmmac_res.mac);
+       plat_dat = devm_stmmac_probe_config_dt(pdev, stmmac_res.mac);
        if (IS_ERR(plat_dat))
                return PTR_ERR(plat_dat);
 
        dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL);
-       if (!dwmac) {
-               ret = -ENOMEM;
-               goto remove_config;
-       }
+       if (!dwmac)
+               return -ENOMEM;
 
        spin_lock_init(&dwmac->lock);
        dwmac->reg = stmmac_res.addr;
@@ -238,7 +236,7 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev)
 
        ret = visconti_eth_clock_probe(pdev, plat_dat);
        if (ret)
-               goto remove_config;
+               return ret;
 
        visconti_eth_init_hw(pdev, plat_dat);
 
@@ -252,22 +250,15 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev)
 
 remove:
        visconti_eth_clock_remove(pdev);
-remove_config:
-       stmmac_remove_config_dt(pdev, plat_dat);
 
        return ret;
 }
 
 static void visconti_eth_dwmac_remove(struct platform_device *pdev)
 {
-       struct net_device *ndev = platform_get_drvdata(pdev);
-       struct stmmac_priv *priv = netdev_priv(ndev);
-
-       stmmac_pltfr_remove(pdev);
+       stmmac_pltfr_remove_no_dt(pdev);
 
        visconti_eth_clock_remove(pdev);
-
-       stmmac_remove_config_dt(pdev, priv->plat);
 }
 
 static const struct of_device_id visconti_eth_dwmac_match[] = {