net: stmmac: split hardware LPI timer control
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 8 Jan 2025 16:48:55 +0000 (16:48 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 11 Jan 2025 01:51:02 +0000 (17:51 -0800)
Provide stmmac_disable_hw_lpi_timer() and stmmac_enable_hw_lpi_timer()
to control the hardware transmit LPI timer.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Choong Yong Liang <yong.liang.choong@linux.intel.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1tVZEl-0002LK-LA@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index bac73f4db39a8144548e9503420eb14516009c5f..69529e4bbb3a7268442833d4ee17364728483ca0 100644 (file)
@@ -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);
 }
 
 /**