Skip to content
Permalink
Browse files
net: stmmac: socfpga: add runtime suspend/resume callback for stratix…
…10 platform

According to upstream commit 5ec5582("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: 5ec5582 ("net: stmmac: add clocks management for gmac driver")
Cc: stable@vger.kernel.org
Signed-off-by: Meng Li <Meng.Li@windriver.com>
  • Loading branch information
limeng-linux authored and intel-lab-lkp committed Nov 12, 2021
1 parent 5833291 commit 3fee8d6a97c77407e030c5831bed7924958ad53f
Showing 1 changed file with 22 additions and 2 deletions.
@@ -485,8 +485,28 @@ static int socfpga_dwmac_resume(struct device *dev)
}
#endif /* CONFIG_PM_SLEEP */

static SIMPLE_DEV_PM_OPS(socfpga_dwmac_pm_ops, stmmac_suspend,
socfpga_dwmac_resume);
static int __maybe_unused socfpga_dwmac_runtime_suspend(struct device *dev)
{
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);
}

const static 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 = {
.set_phy_mode = socfpga_gen5_set_phy_mode,

0 comments on commit 3fee8d6

Please sign in to comment.