Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3256251f authored by Francesco Virlinzi's avatar Francesco Virlinzi Committed by David S. Miller
Browse files

stmmac: use custom init/exit functions in pm ops



Freeze and restore can call the custom init/exit functions.
Also the patch adds a custom data field that can be used
for storing platform data useful on restore the embedded
setup (e.g. GPIO, SYSCFG).

Signed-off-by: default avatarFrancesco Virlinzi <francesco.virlinzi@st.com>
Signed-off-by: default avatarGiuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a104104f
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -186,9 +186,6 @@ static int stmmac_pltfr_remove(struct platform_device *pdev)
	struct resource *res;
	int ret = stmmac_dvr_remove(ndev);

	if (priv->plat->exit)
		priv->plat->exit(pdev);

	if (priv->plat->exit)
		priv->plat->exit(pdev);

@@ -218,14 +215,26 @@ static int stmmac_pltfr_resume(struct device *dev)

int stmmac_pltfr_freeze(struct device *dev)
{
	int ret;
	struct plat_stmmacenet_data *plat_dat = dev_get_platdata(dev);
	struct net_device *ndev = dev_get_drvdata(dev);
	struct platform_device *pdev = to_platform_device(dev);

	return stmmac_freeze(ndev);
	ret = stmmac_freeze(ndev);
	if (plat_dat->exit)
		plat_dat->exit(pdev);

	return ret;
}

int stmmac_pltfr_restore(struct device *dev)
{
	struct plat_stmmacenet_data *plat_dat = dev_get_platdata(dev);
	struct net_device *ndev = dev_get_drvdata(dev);
	struct platform_device *pdev = to_platform_device(dev);

	if (plat_dat->init)
		plat_dat->init(pdev);

	return stmmac_restore(ndev);
}
+1 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ struct plat_stmmacenet_data {
	int (*init)(struct platform_device *pdev);
	void (*exit)(struct platform_device *pdev);
	void *custom_cfg;
	void *custom_data;
	void *bsp_priv;
};
#endif