net: stmmac: Do not set RX IC bit if RX Coalesce is zero
authorJose Abreu <Jose.Abreu@synopsys.com>
Thu, 14 Nov 2019 11:42:45 +0000 (12:42 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Nov 2019 20:25:41 +0000 (12:25 -0800)
We may only want to use the RX Watchdog so lets check if RX Coalesce
settings are non-zero and only set the RX Interrupt on Completion bit if
its not.

Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index 39b4efd..7939ef7 100644 (file)
@@ -3440,7 +3440,11 @@ static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue)
                rx_q->rx_count_frames += priv->rx_coal_frames;
                if (rx_q->rx_count_frames > priv->rx_coal_frames)
                        rx_q->rx_count_frames = 0;
-               use_rx_wd = priv->use_riwt && rx_q->rx_count_frames;
+
+               use_rx_wd = !priv->rx_coal_frames;
+               use_rx_wd |= rx_q->rx_count_frames > 0;
+               if (!priv->use_riwt)
+                       use_rx_wd = false;
 
                dma_wmb();
                stmmac_set_rx_owner(priv, p, use_rx_wd);