RE: [PATCH] net: fec: fix pinctrl default state restore order on resume

From: Wei Fang

Date: Tue May 26 2026 - 07:15:05 EST


> In fec_resume(), fec_enet_clk_enable() is called before
> pinctrl_pm_select_default_state() in the non-WoL path, inverting the
> ordering used in fec_suspend() which correctly switches to the sleep
> pinctrl state before disabling clocks.
>
> For PHYs with the PHY_RST_AFTER_CLK_EN flag (e.g. TI DP83848 or
> SMSC LAN87xx), fec_enet_clk_enable() triggers a hardware reset pulse
> via the phy-reset GPIO. With the GPIO pin still in sleep pinctrl state
> at that point, the GPIO write has no physical effect and the PHY never
> receives the required reset after clock enable, leading to unreliable
> link establishment after system resume.
>
> Fix by restoring the default pinctrl state before enabling clocks in the
> non-WoL resume path, making resume the proper mirror of suspend.
>
> Fixes: de40ed31b3c5 ("net: fec: add Wake-on-LAN support")
>
Nit: a blank line here, please remove it

> Signed-off-by: Tapio Reijonen <tapio.reijonen@xxxxxxxxxxx>