[PATCH net-next v4 17/18] net: stmmac: split hardware LPI timer control
Russell King (Oracle)
rmk+kernel at armlinux.org.uk
Wed Jan 8 08:48:55 PST 2025
Provide stmmac_disable_hw_lpi_timer() and stmmac_enable_hw_lpi_timer()
to control the hardware transmit LPI timer.
Reviewed-by: Andrew Lunn <andrew at lunn.ch>
Tested-by: Choong Yong Liang <yong.liang.choong at linux.intel.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
---
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 6d01dcafaf15..05fee963c1c4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -390,14 +390,24 @@ static inline u32 stmmac_rx_dirty(struct stmmac_priv *priv, u32 queue)
return dirty;
}
-static void stmmac_lpi_entry_timer_config(struct stmmac_priv *priv, bool en)
+static void stmmac_disable_hw_lpi_timer(struct stmmac_priv *priv)
+{
+ stmmac_set_eee_lpi_timer(priv, priv->hw, 0);
+}
+
+static void stmmac_enable_hw_lpi_timer(struct stmmac_priv *priv)
{
- u32 tx_lpi_timer;
+ stmmac_set_eee_lpi_timer(priv, priv->hw, priv->tx_lpi_timer);
+}
+static void stmmac_lpi_entry_timer_config(struct stmmac_priv *priv, bool en)
+{
/* Clear/set the SW EEE timer flag based on LPI ET enablement */
priv->eee_sw_timer_en = en ? 0 : 1;
- tx_lpi_timer = en ? priv->tx_lpi_timer : 0;
- stmmac_set_eee_lpi_timer(priv, priv->hw, tx_lpi_timer);
+ if (en)
+ stmmac_enable_hw_lpi_timer(priv);
+ else
+ stmmac_disable_hw_lpi_timer(priv);
}
/**
--
2.30.2
More information about the linux-arm-kernel
mailing list