Message ID | 20221205153328.503576-3-claudiu.beznea@microchip.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: macb: fix connectivity after resume | expand |
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 95667b979fab..8baa53706721 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -5238,6 +5238,7 @@ static int __maybe_unused macb_resume(struct device *dev) if (!device_may_wakeup(&bp->dev->dev)) phy_init(bp->sgmii_phy); + phylink_init_phydev(bp->phylink); phylink_start(bp->phylink); rtnl_unlock();
Commit bf0ad1893442 ("net: macb: Specify PHY PM management done by MAC") signals to PHY layer that the PHY PM management is done by the MAC driver itself. In case this is done the mdio_bus_phy_suspend() and mdio_bus_phy_resume() will return just at its beginning letting the MAC driver to handle the PHY power management. AT91 devices (e.g. SAMA7G5, SAMA5D2) has a special power saving mode called backup and self-refresh where most of the SoCs parts are shutdown on suspend and RAM is switched to self-refresh. The rail powering the on-board ethernet PHY could also be closed. For scenarios where backup and self-refresh is used the MACB driver needs to re-initialize the PHY device itself when resuming. Otherwise there is poor or missing connectivity (e.g. SAMA7G5-EK uses KSZ9131 in RGMII mode which needs its DLL settings to satisfy RGMII timings). For this phylink_init_phydev() has been called on resume path before phylink_start(). Up to commit bf0ad1893442 ("net: macb: Specify PHY PM management done by MAC") this has been handled by mdio_bus_phy_resume(). This has been tested on SAMA7G5-EK (with KSZ9131 and KSZ8081 PHYs), on SAMA5D2 (with KSZ8081 PHY), on SAM9X60 (with KSZ8081 PHY). Fixes: bf0ad1893442 ("net: macb: Specify PHY PM management done by MAC") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- This patch depends on patch 1/2 from this series. For proper backporting to older kernel (in case this series is integrated as is) please add the Depends-on tag on this patch after patch 1/2 is integrated in networking tree. Thank you, Claudiu Beznea drivers/net/ethernet/cadence/macb_main.c | 1 + 1 file changed, 1 insertion(+)