Commit 341d3bda authored by Jakub Kicinski's avatar Jakub Kicinski

Merge branch 'net-stmmac-convert-to-platform-remove-callback-returning-void'

Uwe Kleine-König says:

====================
net: stmmac: Convert to platform remove callback returning void

(implicit) v1 of this series is available at
https://lore.kernel.org/netdev/20230402143025.2524443-1-u.kleine-koenig@pengutronix.de

Changes since then:

 - Added various Reviewed-by: and Acked-by: tags received for v1
 - Removed a variable in an earlier patch to make all intermediate steps
   compilable, spotted by Simon Horman
 - Rebased to v6.4-rc1 (which needed a slight adaption to cope for
   4bd3bb7b ("net: stmmac: Add glue layer for StarFive JH7110 SoC"))
====================

Link: https://lore.kernel.org/r/20230508142637.1449363-1-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 505e315b a86f8601
...@@ -141,7 +141,7 @@ MODULE_DEVICE_TABLE(of, anarion_dwmac_match); ...@@ -141,7 +141,7 @@ MODULE_DEVICE_TABLE(of, anarion_dwmac_match);
static struct platform_driver anarion_dwmac_driver = { static struct platform_driver anarion_dwmac_driver = {
.probe = anarion_dwmac_probe, .probe = anarion_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "anarion-dwmac", .name = "anarion-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -464,7 +464,7 @@ static int dwc_eth_dwmac_probe(struct platform_device *pdev) ...@@ -464,7 +464,7 @@ static int dwc_eth_dwmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int dwc_eth_dwmac_remove(struct platform_device *pdev) static void dwc_eth_dwmac_remove(struct platform_device *pdev)
{ {
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
struct stmmac_priv *priv = netdev_priv(ndev); struct stmmac_priv *priv = netdev_priv(ndev);
...@@ -477,8 +477,6 @@ static int dwc_eth_dwmac_remove(struct platform_device *pdev) ...@@ -477,8 +477,6 @@ static int dwc_eth_dwmac_remove(struct platform_device *pdev)
data->remove(pdev); data->remove(pdev);
stmmac_remove_config_dt(pdev, priv->plat); stmmac_remove_config_dt(pdev, priv->plat);
return 0;
} }
static const struct of_device_id dwc_eth_dwmac_match[] = { static const struct of_device_id dwc_eth_dwmac_match[] = {
...@@ -490,7 +488,7 @@ MODULE_DEVICE_TABLE(of, dwc_eth_dwmac_match); ...@@ -490,7 +488,7 @@ MODULE_DEVICE_TABLE(of, dwc_eth_dwmac_match);
static struct platform_driver dwc_eth_dwmac_driver = { static struct platform_driver dwc_eth_dwmac_driver = {
.probe = dwc_eth_dwmac_probe, .probe = dwc_eth_dwmac_probe,
.remove = dwc_eth_dwmac_remove, .remove_new = dwc_eth_dwmac_remove,
.driver = { .driver = {
.name = "dwc-eth-dwmac", .name = "dwc-eth-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -87,7 +87,7 @@ MODULE_DEVICE_TABLE(of, dwmac_generic_match); ...@@ -87,7 +87,7 @@ MODULE_DEVICE_TABLE(of, dwmac_generic_match);
static struct platform_driver dwmac_generic_driver = { static struct platform_driver dwmac_generic_driver = {
.probe = dwmac_generic_probe, .probe = dwmac_generic_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = STMMAC_RESOURCE_NAME, .name = STMMAC_RESOURCE_NAME,
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -376,7 +376,7 @@ MODULE_DEVICE_TABLE(of, imx_dwmac_match); ...@@ -376,7 +376,7 @@ MODULE_DEVICE_TABLE(of, imx_dwmac_match);
static struct platform_driver imx_dwmac_driver = { static struct platform_driver imx_dwmac_driver = {
.probe = imx_dwmac_probe, .probe = imx_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "imx-dwmac", .name = "imx-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -386,7 +386,7 @@ MODULE_DEVICE_TABLE(of, ingenic_mac_of_matches); ...@@ -386,7 +386,7 @@ MODULE_DEVICE_TABLE(of, ingenic_mac_of_matches);
static struct platform_driver ingenic_mac_driver = { static struct platform_driver ingenic_mac_driver = {
.probe = ingenic_mac_probe, .probe = ingenic_mac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "ingenic-mac", .name = "ingenic-mac",
.pm = pm_ptr(&ingenic_mac_pm_ops), .pm = pm_ptr(&ingenic_mac_pm_ops),
......
...@@ -169,20 +169,17 @@ static int intel_eth_plat_probe(struct platform_device *pdev) ...@@ -169,20 +169,17 @@ static int intel_eth_plat_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int intel_eth_plat_remove(struct platform_device *pdev) static void intel_eth_plat_remove(struct platform_device *pdev)
{ {
struct intel_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev); struct intel_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev);
int ret;
ret = stmmac_pltfr_remove(pdev); stmmac_pltfr_remove(pdev);
clk_disable_unprepare(dwmac->tx_clk); clk_disable_unprepare(dwmac->tx_clk);
return ret;
} }
static struct platform_driver intel_eth_plat_driver = { static struct platform_driver intel_eth_plat_driver = {
.probe = intel_eth_plat_probe, .probe = intel_eth_plat_probe,
.remove = intel_eth_plat_remove, .remove_new = intel_eth_plat_remove,
.driver = { .driver = {
.name = "intel-eth-plat", .name = "intel-eth-plat",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -498,7 +498,7 @@ MODULE_DEVICE_TABLE(of, ipq806x_gmac_dwmac_match); ...@@ -498,7 +498,7 @@ MODULE_DEVICE_TABLE(of, ipq806x_gmac_dwmac_match);
static struct platform_driver ipq806x_gmac_dwmac_driver = { static struct platform_driver ipq806x_gmac_dwmac_driver = {
.probe = ipq806x_gmac_probe, .probe = ipq806x_gmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "ipq806x-gmac-dwmac", .name = "ipq806x-gmac-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -83,7 +83,7 @@ MODULE_DEVICE_TABLE(of, lpc18xx_dwmac_match); ...@@ -83,7 +83,7 @@ MODULE_DEVICE_TABLE(of, lpc18xx_dwmac_match);
static struct platform_driver lpc18xx_dwmac_driver = { static struct platform_driver lpc18xx_dwmac_driver = {
.probe = lpc18xx_dwmac_probe, .probe = lpc18xx_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "lpc18xx-dwmac", .name = "lpc18xx-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -678,15 +678,12 @@ static int mediatek_dwmac_probe(struct platform_device *pdev) ...@@ -678,15 +678,12 @@ static int mediatek_dwmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int mediatek_dwmac_remove(struct platform_device *pdev) static void mediatek_dwmac_remove(struct platform_device *pdev)
{ {
struct mediatek_dwmac_plat_data *priv_plat = get_stmmac_bsp_priv(&pdev->dev); struct mediatek_dwmac_plat_data *priv_plat = get_stmmac_bsp_priv(&pdev->dev);
int ret;
ret = stmmac_pltfr_remove(pdev); stmmac_pltfr_remove(pdev);
mediatek_dwmac_clks_config(priv_plat, false); mediatek_dwmac_clks_config(priv_plat, false);
return ret;
} }
static const struct of_device_id mediatek_dwmac_match[] = { static const struct of_device_id mediatek_dwmac_match[] = {
...@@ -701,7 +698,7 @@ MODULE_DEVICE_TABLE(of, mediatek_dwmac_match); ...@@ -701,7 +698,7 @@ MODULE_DEVICE_TABLE(of, mediatek_dwmac_match);
static struct platform_driver mediatek_dwmac_driver = { static struct platform_driver mediatek_dwmac_driver = {
.probe = mediatek_dwmac_probe, .probe = mediatek_dwmac_probe,
.remove = mediatek_dwmac_remove, .remove_new = mediatek_dwmac_remove,
.driver = { .driver = {
.name = "dwmac-mediatek", .name = "dwmac-mediatek",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -91,7 +91,7 @@ MODULE_DEVICE_TABLE(of, meson6_dwmac_match); ...@@ -91,7 +91,7 @@ MODULE_DEVICE_TABLE(of, meson6_dwmac_match);
static struct platform_driver meson6_dwmac_driver = { static struct platform_driver meson6_dwmac_driver = {
.probe = meson6_dwmac_probe, .probe = meson6_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "meson6-dwmac", .name = "meson6-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -539,7 +539,7 @@ MODULE_DEVICE_TABLE(of, meson8b_dwmac_match); ...@@ -539,7 +539,7 @@ MODULE_DEVICE_TABLE(of, meson8b_dwmac_match);
static struct platform_driver meson8b_dwmac_driver = { static struct platform_driver meson8b_dwmac_driver = {
.probe = meson8b_dwmac_probe, .probe = meson8b_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "meson8b-dwmac", .name = "meson8b-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -231,7 +231,7 @@ MODULE_DEVICE_TABLE(of, oxnas_dwmac_match); ...@@ -231,7 +231,7 @@ MODULE_DEVICE_TABLE(of, oxnas_dwmac_match);
static struct platform_driver oxnas_dwmac_driver = { static struct platform_driver oxnas_dwmac_driver = {
.probe = oxnas_dwmac_probe, .probe = oxnas_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "oxnas-dwmac", .name = "oxnas-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -665,19 +665,12 @@ static int qcom_ethqos_probe(struct platform_device *pdev) ...@@ -665,19 +665,12 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int qcom_ethqos_remove(struct platform_device *pdev) static void qcom_ethqos_remove(struct platform_device *pdev)
{ {
struct qcom_ethqos *ethqos; struct qcom_ethqos *ethqos = get_stmmac_bsp_priv(&pdev->dev);
int ret;
ethqos = get_stmmac_bsp_priv(&pdev->dev);
if (!ethqos)
return -ENODEV;
ret = stmmac_pltfr_remove(pdev); stmmac_pltfr_remove(pdev);
ethqos_clks_config(ethqos, false); ethqos_clks_config(ethqos, false);
return ret;
} }
static const struct of_device_id qcom_ethqos_match[] = { static const struct of_device_id qcom_ethqos_match[] = {
...@@ -690,7 +683,7 @@ MODULE_DEVICE_TABLE(of, qcom_ethqos_match); ...@@ -690,7 +683,7 @@ MODULE_DEVICE_TABLE(of, qcom_ethqos_match);
static struct platform_driver qcom_ethqos_driver = { static struct platform_driver qcom_ethqos_driver = {
.probe = qcom_ethqos_probe, .probe = qcom_ethqos_probe,
.remove = qcom_ethqos_remove, .remove_new = qcom_ethqos_remove,
.driver = { .driver = {
.name = "qcom-ethqos", .name = "qcom-ethqos",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -1863,15 +1863,13 @@ static int rk_gmac_probe(struct platform_device *pdev) ...@@ -1863,15 +1863,13 @@ static int rk_gmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int rk_gmac_remove(struct platform_device *pdev) static void rk_gmac_remove(struct platform_device *pdev)
{ {
struct rk_priv_data *bsp_priv = get_stmmac_bsp_priv(&pdev->dev); struct rk_priv_data *bsp_priv = get_stmmac_bsp_priv(&pdev->dev);
stmmac_dvr_remove(&pdev->dev); stmmac_dvr_remove(&pdev->dev);
rk_gmac_powerdown(bsp_priv); rk_gmac_powerdown(bsp_priv);
return 0;
} }
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
...@@ -1925,7 +1923,7 @@ MODULE_DEVICE_TABLE(of, rk_gmac_dwmac_match); ...@@ -1925,7 +1923,7 @@ MODULE_DEVICE_TABLE(of, rk_gmac_dwmac_match);
static struct platform_driver rk_gmac_dwmac_driver = { static struct platform_driver rk_gmac_dwmac_driver = {
.probe = rk_gmac_probe, .probe = rk_gmac_probe,
.remove = rk_gmac_remove, .remove_new = rk_gmac_remove,
.driver = { .driver = {
.name = "rk_gmac-dwmac", .name = "rk_gmac-dwmac",
.pm = &rk_gmac_pm_ops, .pm = &rk_gmac_pm_ops,
......
...@@ -524,7 +524,7 @@ MODULE_DEVICE_TABLE(of, socfpga_dwmac_match); ...@@ -524,7 +524,7 @@ MODULE_DEVICE_TABLE(of, socfpga_dwmac_match);
static struct platform_driver socfpga_dwmac_driver = { static struct platform_driver socfpga_dwmac_driver = {
.probe = socfpga_dwmac_probe, .probe = socfpga_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "socfpga-dwmac", .name = "socfpga-dwmac",
.pm = &socfpga_dwmac_pm_ops, .pm = &socfpga_dwmac_pm_ops,
......
...@@ -156,7 +156,7 @@ MODULE_DEVICE_TABLE(of, starfive_dwmac_match); ...@@ -156,7 +156,7 @@ MODULE_DEVICE_TABLE(of, starfive_dwmac_match);
static struct platform_driver starfive_dwmac_driver = { static struct platform_driver starfive_dwmac_driver = {
.probe = starfive_dwmac_probe, .probe = starfive_dwmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "starfive-dwmac", .name = "starfive-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -317,15 +317,13 @@ static int sti_dwmac_probe(struct platform_device *pdev) ...@@ -317,15 +317,13 @@ static int sti_dwmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int sti_dwmac_remove(struct platform_device *pdev) static void sti_dwmac_remove(struct platform_device *pdev)
{ {
struct sti_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev); struct sti_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev);
stmmac_dvr_remove(&pdev->dev); stmmac_dvr_remove(&pdev->dev);
clk_disable_unprepare(dwmac->clk); clk_disable_unprepare(dwmac->clk);
return 0;
} }
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
...@@ -365,7 +363,7 @@ MODULE_DEVICE_TABLE(of, sti_dwmac_match); ...@@ -365,7 +363,7 @@ MODULE_DEVICE_TABLE(of, sti_dwmac_match);
static struct platform_driver sti_dwmac_driver = { static struct platform_driver sti_dwmac_driver = {
.probe = sti_dwmac_probe, .probe = sti_dwmac_probe,
.remove = sti_dwmac_remove, .remove_new = sti_dwmac_remove,
.driver = { .driver = {
.name = "sti-dwmac", .name = "sti-dwmac",
.pm = &sti_dwmac_pm_ops, .pm = &sti_dwmac_pm_ops,
......
...@@ -417,7 +417,7 @@ static int stm32_dwmac_probe(struct platform_device *pdev) ...@@ -417,7 +417,7 @@ static int stm32_dwmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int stm32_dwmac_remove(struct platform_device *pdev) static void stm32_dwmac_remove(struct platform_device *pdev)
{ {
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
struct stmmac_priv *priv = netdev_priv(ndev); struct stmmac_priv *priv = netdev_priv(ndev);
...@@ -431,8 +431,6 @@ static int stm32_dwmac_remove(struct platform_device *pdev) ...@@ -431,8 +431,6 @@ static int stm32_dwmac_remove(struct platform_device *pdev)
dev_pm_clear_wake_irq(&pdev->dev); dev_pm_clear_wake_irq(&pdev->dev);
device_init_wakeup(&pdev->dev, false); device_init_wakeup(&pdev->dev, false);
} }
return 0;
} }
static int stm32mp1_suspend(struct stm32_dwmac *dwmac) static int stm32mp1_suspend(struct stm32_dwmac *dwmac)
...@@ -528,7 +526,7 @@ MODULE_DEVICE_TABLE(of, stm32_dwmac_match); ...@@ -528,7 +526,7 @@ MODULE_DEVICE_TABLE(of, stm32_dwmac_match);
static struct platform_driver stm32_dwmac_driver = { static struct platform_driver stm32_dwmac_driver = {
.probe = stm32_dwmac_probe, .probe = stm32_dwmac_probe,
.remove = stm32_dwmac_remove, .remove_new = stm32_dwmac_remove,
.driver = { .driver = {
.name = "stm32-dwmac", .name = "stm32-dwmac",
.pm = &stm32_dwmac_pm_ops, .pm = &stm32_dwmac_pm_ops,
......
...@@ -1294,7 +1294,7 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) ...@@ -1294,7 +1294,7 @@ static int sun8i_dwmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int sun8i_dwmac_remove(struct platform_device *pdev) static void sun8i_dwmac_remove(struct platform_device *pdev)
{ {
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
struct stmmac_priv *priv = netdev_priv(ndev); struct stmmac_priv *priv = netdev_priv(ndev);
...@@ -1309,8 +1309,6 @@ static int sun8i_dwmac_remove(struct platform_device *pdev) ...@@ -1309,8 +1309,6 @@ static int sun8i_dwmac_remove(struct platform_device *pdev)
stmmac_pltfr_remove(pdev); stmmac_pltfr_remove(pdev);
sun8i_dwmac_unset_syscon(gmac); sun8i_dwmac_unset_syscon(gmac);
return 0;
} }
static void sun8i_dwmac_shutdown(struct platform_device *pdev) static void sun8i_dwmac_shutdown(struct platform_device *pdev)
...@@ -1341,7 +1339,7 @@ MODULE_DEVICE_TABLE(of, sun8i_dwmac_match); ...@@ -1341,7 +1339,7 @@ MODULE_DEVICE_TABLE(of, sun8i_dwmac_match);
static struct platform_driver sun8i_dwmac_driver = { static struct platform_driver sun8i_dwmac_driver = {
.probe = sun8i_dwmac_probe, .probe = sun8i_dwmac_probe,
.remove = sun8i_dwmac_remove, .remove_new = sun8i_dwmac_remove,
.shutdown = sun8i_dwmac_shutdown, .shutdown = sun8i_dwmac_shutdown,
.driver = { .driver = {
.name = "dwmac-sun8i", .name = "dwmac-sun8i",
......
...@@ -179,7 +179,7 @@ MODULE_DEVICE_TABLE(of, sun7i_dwmac_match); ...@@ -179,7 +179,7 @@ MODULE_DEVICE_TABLE(of, sun7i_dwmac_match);
static struct platform_driver sun7i_dwmac_driver = { static struct platform_driver sun7i_dwmac_driver = {
.probe = sun7i_gmac_probe, .probe = sun7i_gmac_probe,
.remove = stmmac_pltfr_remove, .remove_new = stmmac_pltfr_remove,
.driver = { .driver = {
.name = "sun7i-dwmac", .name = "sun7i-dwmac",
.pm = &stmmac_pltfr_pm_ops, .pm = &stmmac_pltfr_pm_ops,
......
...@@ -353,15 +353,13 @@ static int tegra_mgbe_probe(struct platform_device *pdev) ...@@ -353,15 +353,13 @@ static int tegra_mgbe_probe(struct platform_device *pdev)
return err; return err;
} }
static int tegra_mgbe_remove(struct platform_device *pdev) static void tegra_mgbe_remove(struct platform_device *pdev)
{ {
struct tegra_mgbe *mgbe = get_stmmac_bsp_priv(&pdev->dev); struct tegra_mgbe *mgbe = get_stmmac_bsp_priv(&pdev->dev);
clk_bulk_disable_unprepare(ARRAY_SIZE(mgbe_clks), mgbe->clks); clk_bulk_disable_unprepare(ARRAY_SIZE(mgbe_clks), mgbe->clks);
stmmac_pltfr_remove(pdev); stmmac_pltfr_remove(pdev);
return 0;
} }
static const struct of_device_id tegra_mgbe_match[] = { static const struct of_device_id tegra_mgbe_match[] = {
...@@ -374,7 +372,7 @@ static SIMPLE_DEV_PM_OPS(tegra_mgbe_pm_ops, tegra_mgbe_suspend, tegra_mgbe_resum ...@@ -374,7 +372,7 @@ static SIMPLE_DEV_PM_OPS(tegra_mgbe_pm_ops, tegra_mgbe_suspend, tegra_mgbe_resum
static struct platform_driver tegra_mgbe_driver = { static struct platform_driver tegra_mgbe_driver = {
.probe = tegra_mgbe_probe, .probe = tegra_mgbe_probe,
.remove = tegra_mgbe_remove, .remove_new = tegra_mgbe_remove,
.driver = { .driver = {
.name = "tegra-mgbe", .name = "tegra-mgbe",
.pm = &tegra_mgbe_pm_ops, .pm = &tegra_mgbe_pm_ops,
......
...@@ -198,7 +198,7 @@ static int visconti_eth_clock_probe(struct platform_device *pdev, ...@@ -198,7 +198,7 @@ static int visconti_eth_clock_probe(struct platform_device *pdev,
return 0; return 0;
} }
static int visconti_eth_clock_remove(struct platform_device *pdev) static void visconti_eth_clock_remove(struct platform_device *pdev)
{ {
struct visconti_eth *dwmac = get_stmmac_bsp_priv(&pdev->dev); struct visconti_eth *dwmac = get_stmmac_bsp_priv(&pdev->dev);
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
...@@ -206,8 +206,6 @@ static int visconti_eth_clock_remove(struct platform_device *pdev) ...@@ -206,8 +206,6 @@ static int visconti_eth_clock_remove(struct platform_device *pdev)
clk_disable_unprepare(dwmac->phy_ref_clk); clk_disable_unprepare(dwmac->phy_ref_clk);
clk_disable_unprepare(priv->plat->stmmac_clk); clk_disable_unprepare(priv->plat->stmmac_clk);
return 0;
} }
static int visconti_eth_dwmac_probe(struct platform_device *pdev) static int visconti_eth_dwmac_probe(struct platform_device *pdev)
...@@ -259,23 +257,16 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev) ...@@ -259,23 +257,16 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int visconti_eth_dwmac_remove(struct platform_device *pdev) static void visconti_eth_dwmac_remove(struct platform_device *pdev)
{ {
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
struct stmmac_priv *priv = netdev_priv(ndev); struct stmmac_priv *priv = netdev_priv(ndev);
int err;
err = stmmac_pltfr_remove(pdev); stmmac_pltfr_remove(pdev);
if (err < 0)
dev_err(&pdev->dev, "failed to remove platform: %d\n", err);
err = visconti_eth_clock_remove(pdev); visconti_eth_clock_remove(pdev);
if (err < 0)
dev_err(&pdev->dev, "failed to remove clock: %d\n", err);
stmmac_remove_config_dt(pdev, priv->plat); stmmac_remove_config_dt(pdev, priv->plat);
return err;
} }
static const struct of_device_id visconti_eth_dwmac_match[] = { static const struct of_device_id visconti_eth_dwmac_match[] = {
...@@ -286,7 +277,7 @@ MODULE_DEVICE_TABLE(of, visconti_eth_dwmac_match); ...@@ -286,7 +277,7 @@ MODULE_DEVICE_TABLE(of, visconti_eth_dwmac_match);
static struct platform_driver visconti_eth_dwmac_driver = { static struct platform_driver visconti_eth_dwmac_driver = {
.probe = visconti_eth_dwmac_probe, .probe = visconti_eth_dwmac_probe,
.remove = visconti_eth_dwmac_remove, .remove_new = visconti_eth_dwmac_remove,
.driver = { .driver = {
.name = "visconti-eth-dwmac", .name = "visconti-eth-dwmac",
.of_match_table = visconti_eth_dwmac_match, .of_match_table = visconti_eth_dwmac_match,
......
...@@ -707,7 +707,7 @@ EXPORT_SYMBOL_GPL(stmmac_get_platform_resources); ...@@ -707,7 +707,7 @@ EXPORT_SYMBOL_GPL(stmmac_get_platform_resources);
* Description: this function calls the main to free the net resources * Description: this function calls the main to free the net resources
* and calls the platforms hook and release the resources (e.g. mem). * and calls the platforms hook and release the resources (e.g. mem).
*/ */
int stmmac_pltfr_remove(struct platform_device *pdev) void stmmac_pltfr_remove(struct platform_device *pdev)
{ {
struct net_device *ndev = platform_get_drvdata(pdev); struct net_device *ndev = platform_get_drvdata(pdev);
struct stmmac_priv *priv = netdev_priv(ndev); struct stmmac_priv *priv = netdev_priv(ndev);
...@@ -719,8 +719,6 @@ int stmmac_pltfr_remove(struct platform_device *pdev) ...@@ -719,8 +719,6 @@ int stmmac_pltfr_remove(struct platform_device *pdev)
plat->exit(pdev, plat->bsp_priv); plat->exit(pdev, plat->bsp_priv);
stmmac_remove_config_dt(pdev, plat); stmmac_remove_config_dt(pdev, plat);
return 0;
} }
EXPORT_SYMBOL_GPL(stmmac_pltfr_remove); EXPORT_SYMBOL_GPL(stmmac_pltfr_remove);
......
...@@ -19,7 +19,7 @@ void stmmac_remove_config_dt(struct platform_device *pdev, ...@@ -19,7 +19,7 @@ void stmmac_remove_config_dt(struct platform_device *pdev,
int stmmac_get_platform_resources(struct platform_device *pdev, int stmmac_get_platform_resources(struct platform_device *pdev,
struct stmmac_resources *stmmac_res); struct stmmac_resources *stmmac_res);
int stmmac_pltfr_remove(struct platform_device *pdev); void stmmac_pltfr_remove(struct platform_device *pdev);
extern const struct dev_pm_ops stmmac_pltfr_pm_ops; extern const struct dev_pm_ops stmmac_pltfr_pm_ops;
static inline void *get_stmmac_bsp_priv(struct device *dev) static inline void *get_stmmac_bsp_priv(struct device *dev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment