generic: 6.1, 6.6: mt7530: import pending patches
[openwrt/openwrt.git] / target / linux / generic / pending-6.6 / 745-04-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch
diff --git a/target/linux/generic/pending-6.6/745-04-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch b/target/linux/generic/pending-6.6/745-04-net-dsa-mt7530-rename-mt753x_bpdu_port_fw-enum-to-mt.patch
new file mode 100644 (file)
index 0000000..948baf5
--- /dev/null
@@ -0,0 +1,169 @@
+From 83fe3df057e641cd0e88425e579d7a5a370ca430 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <arinc.unal@arinc9.com>
+Date: Mon, 22 Apr 2024 10:15:11 +0300
+Subject: [PATCH 04/15] net: dsa: mt7530: rename mt753x_bpdu_port_fw enum to
+ mt753x_to_cpu_fw
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The mt753x_bpdu_port_fw enum is globally used for manipulating the process
+of deciding the forwardable ports, specifically concerning the CPU port(s).
+Therefore, rename it and the values in it to mt753x_to_cpu_fw.
+
+Change FOLLOW_MFC to SYSTEM_DEFAULT to be on par with the switch documents.
+
+Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
+---
+ drivers/net/dsa/mt7530.c | 44 ++++++++++-------------
+ drivers/net/dsa/mt7530.h | 76 ++++++++++++++++++++--------------------
+ 2 files changed, 56 insertions(+), 64 deletions(-)
+
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
+@@ -1107,42 +1107,34 @@ mt753x_trap_frames(struct mt7530_priv *p
+        * VLAN-untagged.
+        */
+       mt7530_rmw(priv, MT753X_BPC,
+-                 MT753X_PAE_BPDU_FR | MT753X_PAE_EG_TAG_MASK |
+-                         MT753X_PAE_PORT_FW_MASK | MT753X_BPDU_EG_TAG_MASK |
+-                         MT753X_BPDU_PORT_FW_MASK,
+-                 MT753X_PAE_BPDU_FR |
+-                         MT753X_PAE_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
+-                         MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY) |
+-                         MT753X_BPDU_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
+-                         MT753X_BPDU_CPU_ONLY);
++                 PAE_BPDU_FR | PAE_EG_TAG_MASK | PAE_PORT_FW_MASK |
++                         BPDU_EG_TAG_MASK | BPDU_PORT_FW_MASK,
++                 PAE_BPDU_FR | PAE_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
++                         PAE_PORT_FW(TO_CPU_FW_CPU_ONLY) |
++                         BPDU_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
++                         TO_CPU_FW_CPU_ONLY);
+       /* Trap frames with :01 and :02 MAC DAs to the CPU port(s) and egress
+        * them VLAN-untagged.
+        */
+       mt7530_rmw(priv, MT753X_RGAC1,
+-                 MT753X_R02_BPDU_FR | MT753X_R02_EG_TAG_MASK |
+-                         MT753X_R02_PORT_FW_MASK | MT753X_R01_BPDU_FR |
+-                         MT753X_R01_EG_TAG_MASK | MT753X_R01_PORT_FW_MASK,
+-                 MT753X_R02_BPDU_FR |
+-                         MT753X_R02_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
+-                         MT753X_R02_PORT_FW(MT753X_BPDU_CPU_ONLY) |
+-                         MT753X_R01_BPDU_FR |
+-                         MT753X_R01_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
+-                         MT753X_BPDU_CPU_ONLY);
++                 R02_BPDU_FR | R02_EG_TAG_MASK | R02_PORT_FW_MASK |
++                         R01_BPDU_FR | R01_EG_TAG_MASK | R01_PORT_FW_MASK,
++                 R02_BPDU_FR | R02_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
++                         R02_PORT_FW(TO_CPU_FW_CPU_ONLY) | R01_BPDU_FR |
++                         R01_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
++                         TO_CPU_FW_CPU_ONLY);
+       /* Trap frames with :03 and :0E MAC DAs to the CPU port(s) and egress
+        * them VLAN-untagged.
+        */
+       mt7530_rmw(priv, MT753X_RGAC2,
+-                 MT753X_R0E_BPDU_FR | MT753X_R0E_EG_TAG_MASK |
+-                         MT753X_R0E_PORT_FW_MASK | MT753X_R03_BPDU_FR |
+-                         MT753X_R03_EG_TAG_MASK | MT753X_R03_PORT_FW_MASK,
+-                 MT753X_R0E_BPDU_FR |
+-                         MT753X_R0E_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
+-                         MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY) |
+-                         MT753X_R03_BPDU_FR |
+-                         MT753X_R03_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
+-                         MT753X_BPDU_CPU_ONLY);
++                 R0E_BPDU_FR | R0E_EG_TAG_MASK | R0E_PORT_FW_MASK |
++                         R03_BPDU_FR | R03_EG_TAG_MASK | R03_PORT_FW_MASK,
++                 R0E_BPDU_FR | R0E_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
++                         R0E_PORT_FW(TO_CPU_FW_CPU_ONLY) | R03_BPDU_FR |
++                         R03_EG_TAG(MT7530_VLAN_EG_UNTAGGED) |
++                         TO_CPU_FW_CPU_ONLY);
+ }
+ static void
+--- a/drivers/net/dsa/mt7530.h
++++ b/drivers/net/dsa/mt7530.h
+@@ -67,47 +67,47 @@ enum mt753x_id {
+ #define MT753X_MIRROR_MASK(id)                ((((id) == ID_MT7531) || ((id) == ID_MT7988)) ? \
+                                        MT7531_MIRROR_MASK : MIRROR_MASK)
+-/* Registers for BPDU and PAE frame control*/
++/* Register for BPDU and PAE frame control */
+ #define MT753X_BPC                    0x24
+-#define  MT753X_PAE_BPDU_FR           BIT(25)
+-#define  MT753X_PAE_EG_TAG_MASK               GENMASK(24, 22)
+-#define  MT753X_PAE_EG_TAG(x)         FIELD_PREP(MT753X_PAE_EG_TAG_MASK, x)
+-#define  MT753X_PAE_PORT_FW_MASK      GENMASK(18, 16)
+-#define  MT753X_PAE_PORT_FW(x)                FIELD_PREP(MT753X_PAE_PORT_FW_MASK, x)
+-#define  MT753X_BPDU_EG_TAG_MASK      GENMASK(8, 6)
+-#define  MT753X_BPDU_EG_TAG(x)                FIELD_PREP(MT753X_BPDU_EG_TAG_MASK, x)
+-#define  MT753X_BPDU_PORT_FW_MASK     GENMASK(2, 0)
++#define  PAE_BPDU_FR                  BIT(25)
++#define  PAE_EG_TAG_MASK              GENMASK(24, 22)
++#define  PAE_EG_TAG(x)                        FIELD_PREP(PAE_EG_TAG_MASK, x)
++#define  PAE_PORT_FW_MASK             GENMASK(18, 16)
++#define  PAE_PORT_FW(x)                       FIELD_PREP(PAE_PORT_FW_MASK, x)
++#define  BPDU_EG_TAG_MASK             GENMASK(8, 6)
++#define  BPDU_EG_TAG(x)                       FIELD_PREP(BPDU_EG_TAG_MASK, x)
++#define  BPDU_PORT_FW_MASK            GENMASK(2, 0)
+-/* Register for :01 and :02 MAC DA frame control */
++/* Register for 01-80-C2-00-00-[01,02] MAC DA frame control */
+ #define MT753X_RGAC1                  0x28
+-#define  MT753X_R02_BPDU_FR           BIT(25)
+-#define  MT753X_R02_EG_TAG_MASK               GENMASK(24, 22)
+-#define  MT753X_R02_EG_TAG(x)         FIELD_PREP(MT753X_R02_EG_TAG_MASK, x)
+-#define  MT753X_R02_PORT_FW_MASK      GENMASK(18, 16)
+-#define  MT753X_R02_PORT_FW(x)                FIELD_PREP(MT753X_R02_PORT_FW_MASK, x)
+-#define  MT753X_R01_BPDU_FR           BIT(9)
+-#define  MT753X_R01_EG_TAG_MASK               GENMASK(8, 6)
+-#define  MT753X_R01_EG_TAG(x)         FIELD_PREP(MT753X_R01_EG_TAG_MASK, x)
+-#define  MT753X_R01_PORT_FW_MASK      GENMASK(2, 0)
++#define  R02_BPDU_FR                  BIT(25)
++#define  R02_EG_TAG_MASK              GENMASK(24, 22)
++#define  R02_EG_TAG(x)                        FIELD_PREP(R02_EG_TAG_MASK, x)
++#define  R02_PORT_FW_MASK             GENMASK(18, 16)
++#define  R02_PORT_FW(x)                       FIELD_PREP(R02_PORT_FW_MASK, x)
++#define  R01_BPDU_FR                  BIT(9)
++#define  R01_EG_TAG_MASK              GENMASK(8, 6)
++#define  R01_EG_TAG(x)                        FIELD_PREP(R01_EG_TAG_MASK, x)
++#define  R01_PORT_FW_MASK             GENMASK(2, 0)
+-/* Register for :03 and :0E MAC DA frame control */
++/* Register for 01-80-C2-00-00-[03,0E] MAC DA frame control */
+ #define MT753X_RGAC2                  0x2c
+-#define  MT753X_R0E_BPDU_FR           BIT(25)
+-#define  MT753X_R0E_EG_TAG_MASK               GENMASK(24, 22)
+-#define  MT753X_R0E_EG_TAG(x)         FIELD_PREP(MT753X_R0E_EG_TAG_MASK, x)
+-#define  MT753X_R0E_PORT_FW_MASK      GENMASK(18, 16)
+-#define  MT753X_R0E_PORT_FW(x)                FIELD_PREP(MT753X_R0E_PORT_FW_MASK, x)
+-#define  MT753X_R03_BPDU_FR           BIT(9)
+-#define  MT753X_R03_EG_TAG_MASK               GENMASK(8, 6)
+-#define  MT753X_R03_EG_TAG(x)         FIELD_PREP(MT753X_R03_EG_TAG_MASK, x)
+-#define  MT753X_R03_PORT_FW_MASK      GENMASK(2, 0)
++#define  R0E_BPDU_FR                  BIT(25)
++#define  R0E_EG_TAG_MASK              GENMASK(24, 22)
++#define  R0E_EG_TAG(x)                        FIELD_PREP(R0E_EG_TAG_MASK, x)
++#define  R0E_PORT_FW_MASK             GENMASK(18, 16)
++#define  R0E_PORT_FW(x)                       FIELD_PREP(R0E_PORT_FW_MASK, x)
++#define  R03_BPDU_FR                  BIT(9)
++#define  R03_EG_TAG_MASK              GENMASK(8, 6)
++#define  R03_EG_TAG(x)                        FIELD_PREP(R03_EG_TAG_MASK, x)
++#define  R03_PORT_FW_MASK             GENMASK(2, 0)
+-enum mt753x_bpdu_port_fw {
+-      MT753X_BPDU_FOLLOW_MFC,
+-      MT753X_BPDU_CPU_EXCLUDE = 4,
+-      MT753X_BPDU_CPU_INCLUDE = 5,
+-      MT753X_BPDU_CPU_ONLY = 6,
+-      MT753X_BPDU_DROP = 7,
++enum mt753x_to_cpu_fw {
++      TO_CPU_FW_SYSTEM_DEFAULT,
++      TO_CPU_FW_CPU_EXCLUDE = 4,
++      TO_CPU_FW_CPU_INCLUDE = 5,
++      TO_CPU_FW_CPU_ONLY = 6,
++      TO_CPU_FW_DROP = 7,
+ };
+ /* Registers for address table access */