From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-vk1-f179.google.com (mail-vk1-f179.google.com [209.85.221.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 559322E7377 for ; Wed, 29 Jul 2026 22:45:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785365155; cv=none; b=Fdx1qsZ5AXxtlEaQw/+DbQ6+19msy09TgNKXvBVWfHA65B2iBOVfJK9ahBkliOvYf+cbvLZqptDhdKiETUAd3m039YISuUOQIh7WPQiPp8aWbBeP4fckGLBLXpU+CiIx9yFA8DyeNmplX1bzvViU84P9hmCep07kd5JggZP6Ovc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785365155; c=relaxed/simple; bh=GPyxZx0+cSIU8x8jKvE3lu0Z41GxQ/1gIT/YAe6XtNI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=SOAxWvZ/JSAKWfxISc2f2uOsE67EvhcPeesMIXUXQStixfxmxeMNXihqpXY5jovtDRKFe373+iHVEvxxiBZhdpH9VtjlgUbfdeYtm/SPebOZqbFfTNfDxHAGDFACCor/nRgLSr4QMak+emCRpwEu3HKamiQaDCG8uk1AKDnsIWE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HE541MGz; arc=none smtp.client-ip=209.85.221.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HE541MGz" Received: by mail-vk1-f179.google.com with SMTP id 71dfb90a1353d-5c30d9adfa7so516096e0c.3 for ; Wed, 29 Jul 2026 15:45:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785365153; x=1785969953; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=h9u9uRgNdOHE3Hm6tQKrXhbypx1MeLyG0qZtrVKyk00=; b=HE541MGz9Fkq0AIFCfF9fmAeMLlu1bk6w8rOsCf0/QHAEhV69T1sUw4atRrSy5jF6e Gs+kD4UwK1i+GoRRUx5MDCpKWGXi9MhtxawyA2arvIBLibIzlgs8m0jUNla64elsES7i EzqW28xpq3Dgl9hXFJQ2xSaVBWFs1lp3cG6rHGLlpR4fLCh09IKnjcyFr2VJvMHIpvlY wbFWeKQhVkFK+MHG7tqIpKvYxbbxuS5I924IY2Xei6+7jXJSVKVhSQ4hHj3s4jhOjxQ8 prK4yWgBS8dRtAHWGRJ2vV6DkmxaWl3MbjoLX5a4D0ohGpdWODpEEiHwZw+uf8DA0FCh Wlqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785365153; x=1785969953; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=h9u9uRgNdOHE3Hm6tQKrXhbypx1MeLyG0qZtrVKyk00=; b=X0NoP/ymovnEOuphP90fbgSWHq+9APHhqiiJtk+B3k1/37XLJ7mw+h6ALvQm5DGW4E bMj/kOnz6AiYN/ZAucusm4Noz7ha0JhwnaAV4tylDW6zH2rsZ6wOPRZqWvrjz3GdewFE GBCBp61HOJ3+KM/2QOCHTlrJQQW0afBinhEgQ80kxjsP/lONLAjQCND5C17jBP6FP+bm nrjLhx5weOXyBx6X70hG2LGH4ZM2+nO/NymB2LDTt9YNv9omL90Dkkv3sxuc010z2sJ1 2XsIhj8Kgn1O14Uf8iWm6T8CMffARis+namgH01OF46AlHxS121MmlDoEtgbgywqtX+n alng== X-Forwarded-Encrypted: i=1; AHgh+RqdUPO/mVQB7lzjcpF6YVe+5jidsX6Kw5zrKLbSYQvnm6FYHeRTGJduMxbrC/0dltehanqyxgLur/vs1vw=@vger.kernel.org X-Gm-Message-State: AOJu0YwfD1RcNAJfmRFFEtT1vfVDl43grgUKtjX0cxfKAaPpxqW8AVM3 G7YRtwooirJtUV+0Z0aZ4v8FqW76ubsb0s5TBvbxUGk2/xawgaKqvILe X-Gm-Gg: AR+sD10BxMO1TznN9vDuHgn01bJzxqRCJiBPE1DDDuf5TjXGyhpqgP25zkuYxLE5j1i ep3myPN4Fhp45Q5f+poSI98DNkRtAZ2qXc1kjGP8fNhB4RPPjjC2+8DoZLb2OE3oozqMC+ypKoM Gjk7kHA/wE1fzMEFLdJz2Po5NuNQoO7iJgjzF3dpVT4eGuh+nHCPs72Fx6ha7z5X3Tr0UFxUAnk zFHa8zjKdo+5HlUQ5NPcnNdFWK5B55XH/95t75cWFEoJ6v+WT27tinDXSiBYCnODuLDtZhywgmQ N7lmiuZ7esRNPhWQk3+dl+lQn1LkpxoGogVeCJKg/PEg15hrgImtaLbGIqsvC/mIF/iA1IXPUoH HOsTSMNWq6QaAMURrzVRE5qPZwqiON7xzrQp2TYYROtzVd3M/fW0AhzErIBtFxrflja+JtkfLtv FBDc1O6YODVQFo11wn7gdfZ1gM+abvB/yKAmPjHdKahrr2dfXsQy3QiEPVhdnU0+LVN9xLoF2Uf PNWUsByqjMMzFeUB7F2mNTcWQlzU8zqSZSqgg== X-Received: by 2002:a05:6122:4684:b0:5bd:c27a:dafd with SMTP id 71dfb90a1353d-5c365fb257emr35318e0c.3.1785365153129; Wed, 29 Jul 2026 15:45:53 -0700 (PDT) Received: from fabio-X870-EAGLE-WIFI7.. ([2804:1b3:a801:60b4:a913:91a7:b883:6046]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-5c366570bd9sm24356e0c.8.2026.07.29.15.45.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jul 2026 15:45:52 -0700 (PDT) From: Fabio Estevam To: kuba@kernel.org Cc: maxime.chevallier@bootlin.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, qiangqing.zhang@nxp.com, netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux@armlinux.org.uk, Clark Wang , Fabio Estevam Subject: [PATCH net] net: stmmac: Select sleep pin state after suspending phylink Date: Wed, 29 Jul 2026 19:45:35 -0300 Message-ID: <20260729224535.506598-1-festevam@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Clark Wang When MAC Wake-on-LAN is disabled, stmmac_suspend() selects the sleep pinctrl state before calling phylink_suspend(). phylink_suspend() may access PHY registers over MDIO while stopping or reconfiguring the PHY. If selecting the sleep state muxes the MDC and MDIO pins away from the MDIO bus function, these accesses no longer work. Select the sleep pin state only after phylink_suspend() has completed. Keep the transition conditional on MAC Wake-on-LAN being disabled so that the pins remain active when the MAC must receive wake-up packets. Fixes: 90702dcd19c0 ("net: stmmac: fix MAC not working when system resume back with WoL active") Signed-off-by: Clark Wang [fabio: Reworded subject/commit log for clarity and made it priv->wolopts conditional] Signed-off-by: Fabio Estevam --- Based on the NXP kernel fix: https://github.com/nxp-imx/linux-imx/commit/7905fa71ed07d8c2f1da88ad9fffd5ac5e89461f drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 0de4bc949913..36ab66ad80fd 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -8183,13 +8183,15 @@ int stmmac_suspend(struct device *dev) priv->irq_wake = 1; } else { stmmac_mac_set(priv, priv->ioaddr, false); - pinctrl_pm_select_sleep_state(priv->device); } mutex_unlock(&priv->lock); rtnl_lock(); phylink_suspend(priv->phylink, !!priv->wolopts); + + if (!priv->wolopts) + pinctrl_pm_select_sleep_state(priv->device); rtnl_unlock(); if (stmmac_fpe_supported(priv)) -- 2.43.0