[PATCH v2 1/2] net: stmmac: fix pinctrl management during suspend/resume

From: Christophe Roullier

Date: Fri Mar 13 2026 - 07:02:10 EST


In the deepest low-power modes, the pinctrl configuration is lost
and is never restored if the interface is down.
This commit ensures that the pinctrl state is set in all cases.

Signed-off-by: Christophe Roullier <christophe.roullier@xxxxxxxxxxx>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 11150bddd8726..26ac1cdc561c2 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -8150,8 +8150,11 @@ int stmmac_suspend(struct device *dev)
struct stmmac_priv *priv = netdev_priv(ndev);
u8 chan;

- if (!ndev || !netif_running(ndev))
+ if (!ndev || !netif_running(ndev)) {
+ /* Select sleep pin state */
+ pinctrl_pm_select_sleep_state(dev);
goto suspend_bsp;
+ }

mutex_lock(&priv->lock);

@@ -8252,8 +8255,11 @@ int stmmac_resume(struct device *dev)
return ret;
}

- if (!netif_running(ndev))
+ if (!netif_running(ndev)) {
+ /* Select default pin state */
+ pinctrl_pm_select_default_state(priv->device);
return 0;
+ }

/* Power Down bit, into the PM register, is cleared
* automatically as soon as a magic packet or a Wake-up frame
--
2.43.0