aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-02-05 13:39:50 +0000
committerJakub Kicinski <kuba@kernel.org>2025-02-07 11:56:08 -0800
commit64c9936330ccba159f72faaaaa18bdc0f67f5a54 (patch)
treeb6ed5d3c707c4ee5e23df372d9f780f08300843d
parentnet: stmmac: delete software timer before disabling LPI (diff)
downloadwireguard-linux-64c9936330ccba159f72faaaaa18bdc0f67f5a54.tar.xz
wireguard-linux-64c9936330ccba159f72faaaaa18bdc0f67f5a54.zip
net: stmmac: ensure LPI is disabled when disabling EEE
When EEE is disabled, we call stmmac_set_eee_lpi_timer(..., 0). For dwmac4, this will result in LPIATE being cleared, but LPIEN and LPITXA being set, causing LPI mode to be signalled (if it wasn't before). For others MACs, stmmac_set_eee_lpi_timer() does nothing, which means that LPI mode will continue to be signalled despite the expectation for it to be disabled. In both cases, LPI mode will be terminated when the transmitter has a packet to send, and LPIEN will be cleared by hardware. Call stmmac_reset_eee_mode() to ensure that LPI mode is disabled when EEE mode is requested to be disabled. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1tffd8-003ZHb-AX@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 9a568339e9ae..edcdd880f6f1 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -494,6 +494,7 @@ static void stmmac_eee_init(struct stmmac_priv *priv, bool active)
priv->eee_sw_timer_en = false;
del_timer_sync(&priv->eee_ctrl_timer);
stmmac_disable_hw_lpi_timer(priv);
+ stmmac_reset_eee_mode(priv, priv->hw);
stmmac_set_eee_timer(priv, priv->hw, 0,
STMMAC_DEFAULT_TWT_LS);
if (priv->hw->xpcs)