net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 platform
commit 9119570039481d56350af1c636f040fb300b8cf3 upstream. According to upstream commit 5ec55823438e("net: stmmac: add clocks management for gmac driver"), it improve clocks management for stmmac driver. So, it is necessary to implement the runtime callback in dwmac-socfpga driver because it doesn't use the common stmmac_pltfr_pm_ops instance. Otherwise, clocks are not disabled when system enters suspend status. Fixes: 5ec55823438e ("net: stmmac: add clocks management for gmac driver") Cc: stable@vger.kernel.org Signed-off-by: Meng Li <Meng.Li@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
5875f87e2f
commit
6289b494b3
@@ -485,8 +485,28 @@ static int socfpga_dwmac_resume(struct device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_PM_SLEEP */
|
#endif /* CONFIG_PM_SLEEP */
|
||||||
|
|
||||||
static SIMPLE_DEV_PM_OPS(socfpga_dwmac_pm_ops, stmmac_suspend,
|
static int __maybe_unused socfpga_dwmac_runtime_suspend(struct device *dev)
|
||||||
socfpga_dwmac_resume);
|
{
|
||||||
|
struct net_device *ndev = dev_get_drvdata(dev);
|
||||||
|
struct stmmac_priv *priv = netdev_priv(ndev);
|
||||||
|
|
||||||
|
stmmac_bus_clks_config(priv, false);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int __maybe_unused socfpga_dwmac_runtime_resume(struct device *dev)
|
||||||
|
{
|
||||||
|
struct net_device *ndev = dev_get_drvdata(dev);
|
||||||
|
struct stmmac_priv *priv = netdev_priv(ndev);
|
||||||
|
|
||||||
|
return stmmac_bus_clks_config(priv, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct dev_pm_ops socfpga_dwmac_pm_ops = {
|
||||||
|
SET_SYSTEM_SLEEP_PM_OPS(stmmac_suspend, socfpga_dwmac_resume)
|
||||||
|
SET_RUNTIME_PM_OPS(socfpga_dwmac_runtime_suspend, socfpga_dwmac_runtime_resume, NULL)
|
||||||
|
};
|
||||||
|
|
||||||
static const struct socfpga_dwmac_ops socfpga_gen5_ops = {
|
static const struct socfpga_dwmac_ops socfpga_gen5_ops = {
|
||||||
.set_phy_mode = socfpga_gen5_set_phy_mode,
|
.set_phy_mode = socfpga_gen5_set_phy_mode,
|
||||||
|
Reference in New Issue
Block a user