bcm27xx: update to latest patches from RPi foundation
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0211-bcmgenet-Better-coalescing-parameter-defaults.patch
diff --git a/target/linux/bcm27xx/patches-5.4/950-0211-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-5.4/950-0211-bcmgenet-Better-coalescing-parameter-defaults.patch
new file mode 100644 (file)
index 0000000..5b88f11
--- /dev/null
@@ -0,0 +1,43 @@
+From b3344ca9ef887c4004c61be39f7d8d058a569d4d Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 27 Mar 2019 13:45:46 +0000
+Subject: [PATCH] bcmgenet: Better coalescing parameter defaults
+
+Set defaults for TX and RX packet coalescing to be equivalent to:
+
+  # ethtool -C eth0 tx-frames 10
+  # ethtool -C eth0 rx-usecs 50
+
+This may be something we want to set via DT parameters in the
+future.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/net/ethernet/broadcom/genet/bcmgenet.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -2148,7 +2148,7 @@ static void bcmgenet_init_tx_ring(struct
+       bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
+       bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
+-      bcmgenet_tdma_ring_writel(priv, index, 1, DMA_MBUF_DONE_THRESH);
++      bcmgenet_tdma_ring_writel(priv, index, 10, DMA_MBUF_DONE_THRESH);
+       /* Disable rate control for now */
+       bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
+                                 TDMA_FLOW_PERIOD);
+@@ -3571,9 +3571,12 @@ static int bcmgenet_probe(struct platfor
+       netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
+       /* Set default coalescing parameters */
+-      for (i = 0; i < priv->hw_params->rx_queues; i++)
++      for (i = 0; i < priv->hw_params->rx_queues; i++) {
+               priv->rx_rings[i].rx_max_coalesced_frames = 1;
++              priv->rx_rings[i].rx_coalesce_usecs = 50;
++      }
+       priv->rx_rings[DESC_INDEX].rx_max_coalesced_frames = 1;
++      priv->rx_rings[DESC_INDEX].rx_coalesce_usecs = 50;
+       /* libphy will determine the link state */
+       netif_carrier_off(dev);