Commit 5b0acf8d authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Jakub Kicinski
Browse files

net: stmmac: platform: provide stmmac_pltfr_exit()



Provide a helper wrapper around calling the platform's exit() callback.
This allows users to skip checking if the callback exists.

Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/r/20230623100417.93592-4-brgl@bgdev.pl


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 4450e7d4
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -720,6 +720,20 @@ int stmmac_pltfr_init(struct platform_device *pdev,
}
EXPORT_SYMBOL_GPL(stmmac_pltfr_init);

/**
 * stmmac_pltfr_exit
 * @pdev: pointer to the platform device
 * @plat: driver data platform structure
 * Description: Call the platform's exit callback (if any).
 */
void stmmac_pltfr_exit(struct platform_device *pdev,
		       struct plat_stmmacenet_data *plat)
{
	if (plat->exit)
		plat->exit(pdev, plat->bsp_priv);
}
EXPORT_SYMBOL_GPL(stmmac_pltfr_exit);

/**
 * stmmac_pltfr_remove
 * @pdev: platform device pointer
@@ -733,10 +747,7 @@ void stmmac_pltfr_remove(struct platform_device *pdev)
	struct plat_stmmacenet_data *plat = priv->plat;

	stmmac_dvr_remove(&pdev->dev);

	if (plat->exit)
		plat->exit(pdev, plat->bsp_priv);

	stmmac_pltfr_exit(pdev, plat);
	stmmac_remove_config_dt(pdev, plat);
}
EXPORT_SYMBOL_GPL(stmmac_pltfr_remove);
@@ -756,8 +767,7 @@ static int __maybe_unused stmmac_pltfr_suspend(struct device *dev)
	struct platform_device *pdev = to_platform_device(dev);

	ret = stmmac_suspend(dev);
	if (priv->plat->exit)
		priv->plat->exit(pdev, priv->plat->bsp_priv);
	stmmac_pltfr_exit(pdev, priv->plat);

	return ret;
}
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ int stmmac_get_platform_resources(struct platform_device *pdev,

int stmmac_pltfr_init(struct platform_device *pdev,
		      struct plat_stmmacenet_data *plat);
void stmmac_pltfr_exit(struct platform_device *pdev,
		       struct plat_stmmacenet_data *plat);

void stmmac_pltfr_remove(struct platform_device *pdev);
extern const struct dev_pm_ops stmmac_pltfr_pm_ops;