treewide: remove files for building 5.10 kernel
[openwrt/openwrt.git] / target / linux / generic / backport-5.10 / 749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch
diff --git a/target/linux/generic/backport-5.10/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch b/target/linux/generic/backport-5.10/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch
deleted file mode 100644 (file)
index 71fa302..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From 040e926f5813a5f4cc18dbff7c942d1e52f368f2 Mon Sep 17 00:00:00 2001
-From: Ansuel Smith <ansuelsmth@gmail.com>
-Date: Tue, 19 Oct 2021 02:08:50 +0200
-Subject: net: dsa: qca8k: tidy for loop in setup and add cpu port check
-
-Tidy and organize qca8k setup function from multiple for loop.
-Change for loop in bridge leave/join to scan all port and skip cpu port.
-No functional change intended.
-
-Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/dsa/qca8k.c | 74 +++++++++++++++++++++++++++++--------------------
- 1 file changed, 44 insertions(+), 30 deletions(-)
-
---- a/drivers/net/dsa/qca8k.c
-+++ b/drivers/net/dsa/qca8k.c
-@@ -1122,28 +1122,34 @@ qca8k_setup(struct dsa_switch *ds)
-       if (ret)
-               dev_warn(priv->dev, "mib init failed");
--      /* Enable QCA header mode on the cpu port */
--      ret = qca8k_write(priv, QCA8K_REG_PORT_HDR_CTRL(cpu_port),
--                        QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_TX_S |
--                        QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_RX_S);
--      if (ret) {
--              dev_err(priv->dev, "failed enabling QCA header mode");
--              return ret;
--      }
--
--      /* Disable forwarding by default on all ports */
-+      /* Initial setup of all ports */
-       for (i = 0; i < QCA8K_NUM_PORTS; i++) {
-+              /* Disable forwarding by default on all ports */
-               ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i),
-                               QCA8K_PORT_LOOKUP_MEMBER, 0);
-               if (ret)
-                       return ret;
--      }
--      /* Disable MAC by default on all ports */
--      for (i = 1; i < QCA8K_NUM_PORTS; i++)
--              qca8k_port_set_status(priv, i, 0);
-+              /* Enable QCA header mode on all cpu ports */
-+              if (dsa_is_cpu_port(ds, i)) {
-+                      ret = qca8k_write(priv, QCA8K_REG_PORT_HDR_CTRL(i),
-+                                        QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_TX_S |
-+                                        QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_RX_S);
-+                      if (ret) {
-+                              dev_err(priv->dev, "failed enabling QCA header mode");
-+                              return ret;
-+                      }
-+              }
-+
-+              /* Disable MAC by default on all user ports */
-+              if (dsa_is_user_port(ds, i))
-+                      qca8k_port_set_status(priv, i, 0);
-+      }
--      /* Forward all unknown frames to CPU port for Linux processing */
-+      /* Forward all unknown frames to CPU port for Linux processing
-+       * Notice that in multi-cpu config only one port should be set
-+       * for igmp, unknown, multicast and broadcast packet
-+       */
-       ret = qca8k_write(priv, QCA8K_REG_GLOBAL_FW_CTRL1,
-                         BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_S |
-                         BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_BC_DP_S |
-@@ -1152,11 +1158,13 @@ qca8k_setup(struct dsa_switch *ds)
-       if (ret)
-               return ret;
--      /* Setup connection between CPU port & user ports */
-+      /* Setup connection between CPU port & user ports
-+       * Configure specific switch configuration for ports
-+       */
-       for (i = 0; i < QCA8K_NUM_PORTS; i++) {
-               /* CPU port gets connected to all user ports of the switch */
-               if (dsa_is_cpu_port(ds, i)) {
--                      ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(cpu_port),
-+                      ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i),
-                                       QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds));
-                       if (ret)
-                               return ret;
-@@ -1193,16 +1201,14 @@ qca8k_setup(struct dsa_switch *ds)
-                       if (ret)
-                               return ret;
-               }
--      }
--      /* The port 5 of the qca8337 have some problem in flood condition. The
--       * original legacy driver had some specific buffer and priority settings
--       * for the different port suggested by the QCA switch team. Add this
--       * missing settings to improve switch stability under load condition.
--       * This problem is limited to qca8337 and other qca8k switch are not affected.
--       */
--      if (priv->switch_id == QCA8K_ID_QCA8337) {
--              for (i = 0; i < QCA8K_NUM_PORTS; i++) {
-+              /* The port 5 of the qca8337 have some problem in flood condition. The
-+               * original legacy driver had some specific buffer and priority settings
-+               * for the different port suggested by the QCA switch team. Add this
-+               * missing settings to improve switch stability under load condition.
-+               * This problem is limited to qca8337 and other qca8k switch are not affected.
-+               */
-+              if (priv->switch_id == QCA8K_ID_QCA8337) {
-                       switch (i) {
-                       /* The 2 CPU port and port 5 requires some different
-                        * priority than any other ports.
-@@ -1238,6 +1244,12 @@ qca8k_setup(struct dsa_switch *ds)
-                                 QCA8K_PORT_HOL_CTRL1_WRED_EN,
-                                 mask);
-               }
-+
-+              /* Set initial MTU for every port.
-+               * We have only have a general MTU setting. So track
-+               * every port and set the max across all port.
-+               */
-+              priv->port_mtu[i] = ETH_FRAME_LEN + ETH_FCS_LEN;
-       }
-       /* Special GLOBAL_FC_THRESH value are needed for ar8327 switch */
-@@ -1251,8 +1263,6 @@ qca8k_setup(struct dsa_switch *ds)
-       }
-       /* Setup our port MTUs to match power on defaults */
--      for (i = 0; i < QCA8K_NUM_PORTS; i++)
--              priv->port_mtu[i] = ETH_FRAME_LEN + ETH_FCS_LEN;
-       ret = qca8k_write(priv, QCA8K_MAX_FRAME_SIZE, ETH_FRAME_LEN + ETH_FCS_LEN);
-       if (ret)
-               dev_warn(priv->dev, "failed setting MTU settings");
-@@ -1728,7 +1738,9 @@ qca8k_port_bridge_join(struct dsa_switch
-       cpu_port = dsa_to_port(ds, port)->cpu_dp->index;
-       port_mask = BIT(cpu_port);
--      for (i = 1; i < QCA8K_NUM_PORTS; i++) {
-+      for (i = 0; i < QCA8K_NUM_PORTS; i++) {
-+              if (dsa_is_cpu_port(ds, i))
-+                      continue;
-               if (dsa_to_port(ds, i)->bridge_dev != br)
-                       continue;
-               /* Add this port to the portvlan mask of the other ports
-@@ -1758,7 +1770,9 @@ qca8k_port_bridge_leave(struct dsa_switc
-       cpu_port = dsa_to_port(ds, port)->cpu_dp->index;
--      for (i = 1; i < QCA8K_NUM_PORTS; i++) {
-+      for (i = 0; i < QCA8K_NUM_PORTS; i++) {
-+              if (dsa_is_cpu_port(ds, i))
-+                      continue;
-               if (dsa_to_port(ds, i)->bridge_dev != br)
-                       continue;
-               /* Remove this port to the portvlan mask of the other ports