[PATCH net-next] net: stmmac: dwmac-renesas-gbeth: Add PM suspend/resume callbacks

Biju Das biju.das.jz at bp.renesas.com
Sun Jul 6 07:06:42 PDT 2025



> -----Original Message-----
> From: Russell King <linux at armlinux.org.uk>
> Sent: 06 July 2025 11:11
> To: Biju Das <biju.das.jz at bp.renesas.com>
> Cc: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj at bp.renesas.com>; Andrew Lunn
> <andrew+netdev at lunn.ch>; David S. Miller <davem at davemloft.net>; Eric Dumazet <edumazet at google.com>;
> Jakub Kicinski <kuba at kernel.org>; Paolo Abeni <pabeni at redhat.com>; Maxime Coquelin
> <mcoquelin.stm32 at gmail.com>; Alexandre Torgue <alexandre.torgue at foss.st.com>; netdev at vger.kernel.org;
> linux-renesas-soc at vger.kernel.org; linux-stm32 at st-md-mailman.stormreply.com; linux-arm-
> kernel at lists.infradead.org; linux-kernel at vger.kernel.org; Geert Uytterhoeven
> <geert+renesas at glider.be>; biju.das.au <biju.das.au at gmail.com>
> Subject: Re: [PATCH net-next] net: stmmac: dwmac-renesas-gbeth: Add PM suspend/resume callbacks
> 
> On Sun, Jul 06, 2025 at 09:55:28AM +0000, Biju Das wrote:
> > Just adding some logs:
> > Currently PHY resume is called twice
> > [   35.754933]  kszphy_resume+0x3c/0xf0
> > [   35.754940]  phy_resume+0x3c/0x74
> > [   35.754949]  phylink_prepare_resume+0x58/0xa0
> > [   35.754957]  stmmac_resume+0x90/0x2a0
> > [   35.771296]  stmmac_pltfr_resume+0x3c/0x4c
> >
> > and
> >
> > [   35.771258]  kszphy_resume+0x3c/0xf0
> > [   35.771263]  __phy_resume+0x28/0x54
> > [   35.771270]  phy_start+0x7c/0xb4
> > [   35.771275]  phylink_start+0xb8/0x210
> > [   35.771282]  phylink_resume+0x7c/0xc4
> > [   35.771288]  stmmac_resume+0x1ec/0x2a0
> > [   35.771296]  stmmac_pltfr_resume+0x3c/0x4c
> 
> This shouldn't be a problem. Phylib will do this, and PHY drivers are expected to cope.
> 
> For example, on non-MAC managed PM PHYs, mdio_bus_phy_resume() will call phy_init_hw() followed by
> phy_resume(). If a MAC subsequently is brought up, phy_start() will be called, which will also call
> __phy_resume().
> 
> If this is upsetting the KSZ PHY, then the KSZ PHY driver needs fixing.

By reconfiguring rgmii_delay during resume also fixes the issue.
Not sure, PHY device is expected to configure the delay during every resume?


	if (phy_interface_is_rgmii(phydev)) {
		ret = ksz9131_config_rgmii_delay(phydev);
		if (ret < 0)
			return ret;
	}

Cheers,
Biju



More information about the linux-arm-kernel mailing list