From: Romain Gantois <romain.gantois@bootlin.com> To: "Russell King" <linux@armlinux.org.uk>, "Andrew Lunn" <andrew@lunn.ch>, "Heiner Kallweit" <hkallweit1@gmail.com>, "David S. Miller" <davem@davemloft.net>, "Eric Dumazet" <edumazet@google.com>, "Jakub Kicinski" <kuba@kernel.org>, "Paolo Abeni" <pabeni@redhat.com>, "Alexandre Torgue" <alexandre.torgue@foss.st.com>, "Jose Abreu" <joabreu@synopsys.com>, "Maxime Coquelin" <mcoquelin.stm32@gmail.com>, "Clément Léger" <clement.leger@bootlin.com> Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>, Miquel Raynal <miquel.raynal@bootlin.com>, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, Clark Wang <xiaoning.wang@nxp.com>, Romain Gantois <romain.gantois@bootlin.com> Subject: [PATCH net-next v3 6/7] net: phy: qcom: at803x: Avoid hibernating if MAC requires RX clock Date: Mon, 12 Feb 2024 17:42:13 +0100 [thread overview] Message-ID: <20240212-rxc_bugfix-v3-6-e9f2eb6b3b05@bootlin.com> (raw) In-Reply-To: <20240212-rxc_bugfix-v3-0-e9f2eb6b3b05@bootlin.com> From: Russell King <linux@armlinux.org.uk> Stmmac controllers connected to an at803x PHY cannot resume properly after suspend when WoL is enabled. This happens because the MAC requires an RX clock generated by the PHY to initialize its hardware properly. But the RX clock is cut when the PHY suspends and isn't brought up until the MAC driver resumes the phylink. Prevent the at803x PHY driver from going into suspend if the attached MAC driver always requires an RX clock signal. Reported-by: Clark Wang <xiaoning.wang@nxp.com> Link: https://lore.kernel.org/all/20230202081559.3553637-1-xiaoning.wang@nxp.com/ Signed-off-by: Russell King <linux@armlinux.org.uk> [rgantois: commit log] Signed-off-by: Romain Gantois <romain.gantois@bootlin.com> --- drivers/net/phy/qcom/at803x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/qcom/at803x.c b/drivers/net/phy/qcom/at803x.c index 4717c59d51d0..2a221b81cf37 100644 --- a/drivers/net/phy/qcom/at803x.c +++ b/drivers/net/phy/qcom/at803x.c @@ -426,7 +426,8 @@ static int at803x_hibernation_mode_config(struct phy_device *phydev) /* The default after hardware reset is hibernation mode enabled. After * software reset, the value is retained. */ - if (!(priv->flags & AT803X_DISABLE_HIBERNATION_MODE)) + if (!(priv->flags & AT803X_DISABLE_HIBERNATION_MODE) && + !(phydev->dev_flags & PHY_F_RXC_ALWAYS_ON)) return 0; return at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_HIB_CTRL, -- 2.43.0
WARNING: multiple messages have this Message-ID (diff)
From: Romain Gantois <romain.gantois@bootlin.com> To: "Russell King" <linux@armlinux.org.uk>, "Andrew Lunn" <andrew@lunn.ch>, "Heiner Kallweit" <hkallweit1@gmail.com>, "David S. Miller" <davem@davemloft.net>, "Eric Dumazet" <edumazet@google.com>, "Jakub Kicinski" <kuba@kernel.org>, "Paolo Abeni" <pabeni@redhat.com>, "Alexandre Torgue" <alexandre.torgue@foss.st.com>, "Jose Abreu" <joabreu@synopsys.com>, "Maxime Coquelin" <mcoquelin.stm32@gmail.com>, "Clément Léger" <clement.leger@bootlin.com> Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>, Miquel Raynal <miquel.raynal@bootlin.com>, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, Clark Wang <xiaoning.wang@nxp.com>, Romain Gantois <romain.gantois@bootlin.com> Subject: [PATCH net-next v3 6/7] net: phy: qcom: at803x: Avoid hibernating if MAC requires RX clock Date: Mon, 12 Feb 2024 17:42:13 +0100 [thread overview] Message-ID: <20240212-rxc_bugfix-v3-6-e9f2eb6b3b05@bootlin.com> (raw) In-Reply-To: <20240212-rxc_bugfix-v3-0-e9f2eb6b3b05@bootlin.com> From: Russell King <linux@armlinux.org.uk> Stmmac controllers connected to an at803x PHY cannot resume properly after suspend when WoL is enabled. This happens because the MAC requires an RX clock generated by the PHY to initialize its hardware properly. But the RX clock is cut when the PHY suspends and isn't brought up until the MAC driver resumes the phylink. Prevent the at803x PHY driver from going into suspend if the attached MAC driver always requires an RX clock signal. Reported-by: Clark Wang <xiaoning.wang@nxp.com> Link: https://lore.kernel.org/all/20230202081559.3553637-1-xiaoning.wang@nxp.com/ Signed-off-by: Russell King <linux@armlinux.org.uk> [rgantois: commit log] Signed-off-by: Romain Gantois <romain.gantois@bootlin.com> --- drivers/net/phy/qcom/at803x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/qcom/at803x.c b/drivers/net/phy/qcom/at803x.c index 4717c59d51d0..2a221b81cf37 100644 --- a/drivers/net/phy/qcom/at803x.c +++ b/drivers/net/phy/qcom/at803x.c @@ -426,7 +426,8 @@ static int at803x_hibernation_mode_config(struct phy_device *phydev) /* The default after hardware reset is hibernation mode enabled. After * software reset, the value is retained. */ - if (!(priv->flags & AT803X_DISABLE_HIBERNATION_MODE)) + if (!(priv->flags & AT803X_DISABLE_HIBERNATION_MODE) && + !(phydev->dev_flags & PHY_F_RXC_ALWAYS_ON)) return 0; return at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_HIB_CTRL, -- 2.43.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-02-12 16:41 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-02-12 16:42 [PATCH net-next v3 0/7] Fix missing PHY-to-MAC RX clock Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 16:42 ` [PATCH net-next v3 1/7] net: phylink: add PHY_F_RXC_ALWAYS_ON to PHY dev flags Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 16:42 ` [PATCH net-next v3 2/7] net: phylink: add rxc_always_on flag to phylink_pcs Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 16:42 ` [PATCH net-next v3 3/7] net: stmmac: don't rely on lynx_pcs presence to check for a PHY Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 16:42 ` [PATCH net-next v3 4/7] net: stmmac: Support a generic PCS field in mac_device_info Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 16:42 ` [PATCH net-next v3 5/7] net: stmmac: Signal to PHY/PCS drivers to keep RX clock on Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 16:42 ` Romain Gantois [this message] 2024-02-12 16:42 ` [PATCH net-next v3 6/7] net: phy: qcom: at803x: Avoid hibernating if MAC requires RX clock Romain Gantois 2024-02-12 16:42 ` [PATCH net-next v3 7/7] net: pcs: rzn1-miic: Init RX clock early if MAC requires it Romain Gantois 2024-02-12 16:42 ` Romain Gantois 2024-02-12 17:53 ` Maxime Chevallier 2024-02-12 17:53 ` Maxime Chevallier 2024-02-21 9:40 ` Romain Gantois 2024-02-21 9:40 ` Romain Gantois
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20240212-rxc_bugfix-v3-6-e9f2eb6b3b05@bootlin.com \ --to=romain.gantois@bootlin.com \ --cc=alexandre.torgue@foss.st.com \ --cc=andrew@lunn.ch \ --cc=clement.leger@bootlin.com \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=hkallweit1@gmail.com \ --cc=joabreu@synopsys.com \ --cc=kuba@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=linux@armlinux.org.uk \ --cc=maxime.chevallier@bootlin.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=miquel.raynal@bootlin.com \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=thomas.petazzoni@bootlin.com \ --cc=xiaoning.wang@nxp.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.