[openwrt/openwrt] lantiq: replace gswip patches with upstream version

LEDE Commits lede-commits at lists.infradead.org
Sat Jul 6 08:55:04 PDT 2024


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/75cd4ef48dffea8c659605786cf426962dd6bfc4

commit 75cd4ef48dffea8c659605786cf426962dd6bfc4
Author: Martin Schiller <ms at dev.tdt.de>
AuthorDate: Wed Jun 26 10:39:18 2024 +0200

    lantiq: replace gswip patches with upstream version
    
    Replace recently added patches with version accepted upstream.
    
    Signed-off-by: Martin Schiller <ms at dev.tdt.de>
    Link: https://github.com/openwrt/openwrt/pull/15811
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 ...-net-dsa-lantiq_gswip-Add-missing-phy-mod.patch |  32 --
 ...t-dsa-lantiq-gswip-convert-to-YAML-schema.patch | 392 +++++++++++++++++++++
 ...-allow-phy-mode-internal-on-the-CPU-port.patch} |  13 +-
 ...tiq_gswip-add-terminating-n-where-missing.patch |  82 +++++
 ...iq_gswip-Use-dev_err_probe-where-appropr.patch} |  30 +-
 ...iq_gswip-Don-t-manually-call-gswip_port_.patch} |  12 +-
 ...iq_gswip-do-also-enable-or-disable-cpu-p.patch} |  13 +-
 ...iq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch} |  11 +-
 ...tiq_gswip-Consistently-use-macros-for-the.patch |  47 ---
 ...antiq_gswip-Change-literal-6-to-ETH_ALEN.patch} |  11 +-
 ...tiq_gswip-Forbid-gswip_add_single_port_br.patch |  26 --
 ...tiq_gswip-Consistently-use-macros-for-the.patch |  82 +++++
 ...tiq_gswip-Fix-error-message-in-gswip_add_.patch |  26 --
 ...e-dead-code-from-gswip_add_single_port_br.patch |  35 ++
 ...gswip-Update-comments-in-gswip_port_vlan.patch} |  15 +-
 ...tiq_gswip-Add-and-use-a-GSWIP_TABLE_MAC_B.patch |  33 --
 ...tiq_gswip-Improve-error-message-in-gswip_.patch |  30 ++
 ...tiq_gswip-Improve-error-message-in-gswip_.patch |  26 --
 18 files changed, 689 insertions(+), 227 deletions(-)

diff --git a/target/linux/lantiq/patches-6.6/0731-dt-bindings-net-dsa-lantiq_gswip-Add-missing-phy-mod.patch b/target/linux/lantiq/patches-6.6/0731-dt-bindings-net-dsa-lantiq_gswip-Add-missing-phy-mod.patch
deleted file mode 100644
index c337c564b6..0000000000
--- a/target/linux/lantiq/patches-6.6/0731-dt-bindings-net-dsa-lantiq_gswip-Add-missing-phy-mod.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 82ea7c7fb4e90620beba8b6436fc12df2379ef8d Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Mon, 10 Oct 2022 16:52:25 +0200
-Subject: [PATCH 731/768] dt-bindings: net: dsa: lantiq_gswip: Add missing
- phy-mode and fixed-link
-
-The CPU port has to specify a phy-mode and either a phy or a fixed-link.
-Since GSWIP is connected using a SoC internal protocol there's no PHY
-involved. Add phy-mode = "internal" and a fixed-link to describe the
-communication between the PMAC (Ethernet controller) and GSWIP switch.
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
----
- Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt
-+++ b/Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt
-@@ -96,7 +96,13 @@ switch at e108000 {
- 
- 		port at 6 {
- 			reg = <0x6>;
-+			phy-mode = "internal";
- 			ethernet = <&eth0>;
-+
-+			fixed-link {
-+				speed = <1000>;
-+				full-duplex;
-+			};
- 		};
- 	};
- 
diff --git a/target/linux/lantiq/patches-6.6/0731-v6.11-dt-bindings-net-dsa-lantiq-gswip-convert-to-YAML-schema.patch b/target/linux/lantiq/patches-6.6/0731-v6.11-dt-bindings-net-dsa-lantiq-gswip-convert-to-YAML-schema.patch
new file mode 100644
index 0000000000..40e52f2812
--- /dev/null
+++ b/target/linux/lantiq/patches-6.6/0731-v6.11-dt-bindings-net-dsa-lantiq-gswip-convert-to-YAML-schema.patch
@@ -0,0 +1,392 @@
+From c7f75954212b5e64f6b1f2375215b02fd79758ce Mon Sep 17 00:00:00 2001
+From: Martin Schiller <ms at dev.tdt.de>
+Date: Tue, 11 Jun 2024 15:54:23 +0200
+Subject: dt-bindings: net: dsa: lantiq,gswip: convert to YAML schema
+
+Convert the lantiq,gswip bindings to YAML format.
+
+Also add this new file to the MAINTAINERS file.
+
+Furthermore, the CPU port has to specify a phy-mode and either a phy or
+a fixed-link. Since GSWIP is connected using a SoC internal protocol
+there's no PHY involved. Add phy-mode = "internal" and a fixed-link to
+the example code to describe the communication between the PMAC
+(Ethernet controller) and GSWIP switch.
+
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Reviewed-by: Rob Herring (Arm) <robh at kernel.org>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Link: https://lore.kernel.org/r/20240611135434.3180973-2-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ .../devicetree/bindings/net/dsa/lantiq,gswip.yaml  | 202 +++++++++++++++++++++
+ .../devicetree/bindings/net/dsa/lantiq-gswip.txt   | 146 ---------------
+ MAINTAINERS                                        |   1 +
+ 3 files changed, 203 insertions(+), 146 deletions(-)
+ create mode 100644 Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml
+ delete mode 100644 Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt
+
+--- /dev/null
++++ b/Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml
+@@ -0,0 +1,202 @@
++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
++%YAML 1.2
++---
++$id: http://devicetree.org/schemas/net/dsa/lantiq,gswip.yaml#
++$schema: http://devicetree.org/meta-schemas/core.yaml#
++
++title: Lantiq GSWIP Ethernet switches
++
++allOf:
++  - $ref: dsa.yaml#/$defs/ethernet-ports
++
++maintainers:
++  - Hauke Mehrtens <hauke at hauke-m.de>
++
++properties:
++  compatible:
++    enum:
++      - lantiq,xrx200-gswip
++      - lantiq,xrx300-gswip
++      - lantiq,xrx330-gswip
++
++  reg:
++    minItems: 3
++    maxItems: 3
++
++  reg-names:
++    items:
++      - const: switch
++      - const: mdio
++      - const: mii
++
++  mdio:
++    $ref: /schemas/net/mdio.yaml#
++    unevaluatedProperties: false
++
++    properties:
++      compatible:
++        const: lantiq,xrx200-mdio
++
++    required:
++      - compatible
++
++  gphy-fw:
++    type: object
++    properties:
++      '#address-cells':
++        const: 1
++
++      '#size-cells':
++        const: 0
++
++      compatible:
++        items:
++          - enum:
++              - lantiq,xrx200-gphy-fw
++              - lantiq,xrx300-gphy-fw
++              - lantiq,xrx330-gphy-fw
++          - const: lantiq,gphy-fw
++
++      lantiq,rcu:
++        $ref: /schemas/types.yaml#/definitions/phandle
++        description: phandle to the RCU syscon
++
++    patternProperties:
++      "^gphy@[0-9a-f]{1,2}$":
++        type: object
++
++        additionalProperties: false
++
++        properties:
++          reg:
++            minimum: 0
++            maximum: 255
++            description:
++              Offset of the GPHY firmware register in the RCU register range
++
++          resets:
++            items:
++              - description: GPHY reset line
++
++          reset-names:
++            items:
++              - const: gphy
++
++        required:
++          - reg
++
++    required:
++      - compatible
++      - lantiq,rcu
++
++    additionalProperties: false
++
++required:
++  - compatible
++  - reg
++
++unevaluatedProperties: false
++
++examples:
++  - |
++    switch at e108000 {
++            compatible = "lantiq,xrx200-gswip";
++            reg = <0xe108000 0x3100>,  /* switch */
++                  <0xe10b100 0xd8>,    /* mdio */
++                  <0xe10b1d8 0x130>;   /* mii */
++            dsa,member = <0 0>;
++
++            ports {
++                    #address-cells = <1>;
++                    #size-cells = <0>;
++
++                    port at 0 {
++                            reg = <0>;
++                            label = "lan3";
++                            phy-mode = "rgmii";
++                            phy-handle = <&phy0>;
++                    };
++
++                    port at 1 {
++                            reg = <1>;
++                            label = "lan4";
++                            phy-mode = "rgmii";
++                            phy-handle = <&phy1>;
++                    };
++
++                    port at 2 {
++                            reg = <2>;
++                            label = "lan2";
++                            phy-mode = "internal";
++                            phy-handle = <&phy11>;
++                    };
++
++                    port at 4 {
++                            reg = <4>;
++                            label = "lan1";
++                            phy-mode = "internal";
++                            phy-handle = <&phy13>;
++                    };
++
++                    port at 5 {
++                            reg = <5>;
++                            label = "wan";
++                            phy-mode = "rgmii";
++                            phy-handle = <&phy5>;
++                    };
++
++                    port at 6 {
++                            reg = <0x6>;
++                            phy-mode = "internal";
++                            ethernet = <&eth0>;
++
++                            fixed-link {
++                                    speed = <1000>;
++                                    full-duplex;
++                            };
++                    };
++            };
++
++            mdio {
++                    #address-cells = <1>;
++                    #size-cells = <0>;
++                    compatible = "lantiq,xrx200-mdio";
++
++                    phy0: ethernet-phy at 0 {
++                            reg = <0x0>;
++                    };
++                    phy1: ethernet-phy at 1 {
++                            reg = <0x1>;
++                    };
++                    phy5: ethernet-phy at 5 {
++                            reg = <0x5>;
++                    };
++                    phy11: ethernet-phy at 11 {
++                            reg = <0x11>;
++                    };
++                    phy13: ethernet-phy at 13 {
++                            reg = <0x13>;
++                    };
++            };
++
++            gphy-fw {
++                    #address-cells = <1>;
++                    #size-cells = <0>;
++                    compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
++                    lantiq,rcu = <&rcu0>;
++
++                    gphy at 20 {
++                            reg = <0x20>;
++
++                            resets = <&reset0 31 30>;
++                            reset-names = "gphy";
++                    };
++
++                    gphy at 68 {
++                            reg = <0x68>;
++
++                            resets = <&reset0 29 28>;
++                            reset-names = "gphy";
++                    };
++            };
++    };
+--- a/Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt
++++ /dev/null
+@@ -1,146 +0,0 @@
+-Lantiq GSWIP Ethernet switches
+-==================================
+-
+-Required properties for GSWIP core:
+-
+-- compatible	: "lantiq,xrx200-gswip" for the embedded GSWIP in the
+-		  xRX200 SoC
+-		  "lantiq,xrx300-gswip" for the embedded GSWIP in the
+-		  xRX300 SoC
+-		  "lantiq,xrx330-gswip" for the embedded GSWIP in the
+-		  xRX330 SoC
+-- reg		: memory range of the GSWIP core registers
+-		: memory range of the GSWIP MDIO registers
+-		: memory range of the GSWIP MII registers
+-
+-See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of
+-additional required and optional properties.
+-
+-
+-Required properties for MDIO bus:
+-- compatible	: "lantiq,xrx200-mdio" for the MDIO bus inside the GSWIP
+-		  core of the xRX200 SoC and the PHYs connected to it.
+-
+-See Documentation/devicetree/bindings/net/mdio.txt for a list of additional
+-required and optional properties.
+-
+-
+-Required properties for GPHY firmware loading:
+-- compatible	: "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw"
+-		  "lantiq,xrx300-gphy-fw", "lantiq,gphy-fw"
+-		  "lantiq,xrx330-gphy-fw", "lantiq,gphy-fw"
+-		  for the loading of the firmware into the embedded
+-		  GPHY core of the SoC.
+-- lantiq,rcu	: reference to the rcu syscon
+-
+-The GPHY firmware loader has a list of GPHY entries, one for each
+-embedded GPHY
+-
+-- reg		: Offset of the GPHY firmware register in the RCU
+-		  register range
+-- resets	: list of resets of the embedded GPHY
+-- reset-names	: list of names of the resets
+-
+-Example:
+-
+-Ethernet switch on the VRX200 SoC:
+-
+-switch at e108000 {
+-	#address-cells = <1>;
+-	#size-cells = <0>;
+-	compatible = "lantiq,xrx200-gswip";
+-	reg = <	0xe108000 0x3100	/* switch */
+-		0xe10b100 0xd8		/* mdio */
+-		0xe10b1d8 0x130		/* mii */
+-		>;
+-	dsa,member = <0 0>;
+-
+-	ports {
+-		#address-cells = <1>;
+-		#size-cells = <0>;
+-
+-		port at 0 {
+-			reg = <0>;
+-			label = "lan3";
+-			phy-mode = "rgmii";
+-			phy-handle = <&phy0>;
+-		};
+-
+-		port at 1 {
+-			reg = <1>;
+-			label = "lan4";
+-			phy-mode = "rgmii";
+-			phy-handle = <&phy1>;
+-		};
+-
+-		port at 2 {
+-			reg = <2>;
+-			label = "lan2";
+-			phy-mode = "internal";
+-			phy-handle = <&phy11>;
+-		};
+-
+-		port at 4 {
+-			reg = <4>;
+-			label = "lan1";
+-			phy-mode = "internal";
+-			phy-handle = <&phy13>;
+-		};
+-
+-		port at 5 {
+-			reg = <5>;
+-			label = "wan";
+-			phy-mode = "rgmii";
+-			phy-handle = <&phy5>;
+-		};
+-
+-		port at 6 {
+-			reg = <0x6>;
+-			ethernet = <&eth0>;
+-		};
+-	};
+-
+-	mdio {
+-		#address-cells = <1>;
+-		#size-cells = <0>;
+-		compatible = "lantiq,xrx200-mdio";
+-		reg = <0>;
+-
+-		phy0: ethernet-phy at 0 {
+-			reg = <0x0>;
+-		};
+-		phy1: ethernet-phy at 1 {
+-			reg = <0x1>;
+-		};
+-		phy5: ethernet-phy at 5 {
+-			reg = <0x5>;
+-		};
+-		phy11: ethernet-phy at 11 {
+-			reg = <0x11>;
+-		};
+-		phy13: ethernet-phy at 13 {
+-			reg = <0x13>;
+-		};
+-	};
+-
+-	gphy-fw {
+-		compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
+-		lantiq,rcu = <&rcu0>;
+-		#address-cells = <1>;
+-		#size-cells = <0>;
+-
+-		gphy at 20 {
+-			reg = <0x20>;
+-
+-			resets = <&reset0 31 30>;
+-			reset-names = "gphy";
+-		};
+-
+-		gphy at 68 {
+-			reg = <0x68>;
+-
+-			resets = <&reset0 29 28>;
+-			reset-names = "gphy";
+-		};
+-	};
+-};
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -11863,6 +11863,7 @@ LANTIQ / INTEL Ethernet drivers
+ M:	Hauke Mehrtens <hauke at hauke-m.de>
+ L:	netdev at vger.kernel.org
+ S:	Maintained
++F:	Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml
+ F:	drivers/net/dsa/lantiq_gswip.c
+ F:	drivers/net/dsa/lantiq_pce.h
+ F:	drivers/net/ethernet/lantiq_xrx200.c
diff --git a/target/linux/lantiq/patches-6.6/0732-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on.patch b/target/linux/lantiq/patches-6.6/0732-v6.11-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on-the-CPU-port.patch
similarity index 66%
rename from target/linux/lantiq/patches-6.6/0732-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on.patch
rename to target/linux/lantiq/patches-6.6/0732-v6.11-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on-the-CPU-port.patch
index 4800ee1dd2..305ad4c42c 100644
--- a/target/linux/lantiq/patches-6.6/0732-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on.patch
+++ b/target/linux/lantiq/patches-6.6/0732-v6.11-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on-the-CPU-port.patch
@@ -1,14 +1,19 @@
-From a55b9d802e11baceb35bd312419ad82086065b08 Mon Sep 17 00:00:00 2001
+From b98f122ebdac28b0c932f3f4474eb0927c39297b Mon Sep 17 00:00:00 2001
 From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Mon, 10 Oct 2022 16:59:35 +0200
-Subject: [PATCH 732/768] net: dsa: lantiq_gswip: Only allow phy-mode =
- "internal" on the CPU port
+Date: Tue, 11 Jun 2024 15:54:24 +0200
+Subject: net: dsa: lantiq_gswip: Only allow phy-mode = "internal" on the CPU
+ port
 
 Add the CPU port to gswip_xrx200_phylink_get_caps() and
 gswip_xrx300_phylink_get_caps(). It connects through a SoC-internal bus,
 so the only allowed phy-mode is PHY_INTERFACE_MODE_INTERNAL.
 
 Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-3-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
  drivers/net/dsa/lantiq_gswip.c | 2 ++
  1 file changed, 2 insertions(+)
diff --git a/target/linux/lantiq/patches-6.6/0733-v6.11-net-dsa-lantiq_gswip-add-terminating-n-where-missing.patch b/target/linux/lantiq/patches-6.6/0733-v6.11-net-dsa-lantiq_gswip-add-terminating-n-where-missing.patch
new file mode 100644
index 0000000000..55adfe021f
--- /dev/null
+++ b/target/linux/lantiq/patches-6.6/0733-v6.11-net-dsa-lantiq_gswip-add-terminating-n-where-missing.patch
@@ -0,0 +1,82 @@
+From dd6d364e1895211df8a8fe02c2a5a0b2a7049957 Mon Sep 17 00:00:00 2001
+From: Martin Schiller <ms at dev.tdt.de>
+Date: Tue, 11 Jun 2024 15:54:25 +0200
+Subject: net: dsa: lantiq_gswip: add terminating \n where missing
+
+Some dev_err are missing the terminating \n. Let's add that.
+
+Suggested-by: Vladimir Oltean <olteanv at gmail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Link: https://lore.kernel.org/r/20240611135434.3180973-4-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/dsa/lantiq_gswip.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/dsa/lantiq_gswip.c
++++ b/drivers/net/dsa/lantiq_gswip.c
+@@ -829,7 +829,7 @@ static int gswip_setup(struct dsa_switch
+ 
+ 	err = gswip_pce_load_microcode(priv);
+ 	if (err) {
+-		dev_err(priv->dev, "writing PCE microcode failed, %i", err);
++		dev_err(priv->dev, "writing PCE microcode failed, %i\n", err);
+ 		return err;
+ 	}
+ 
+@@ -1780,7 +1780,7 @@ static u32 gswip_bcm_ram_entry_read(stru
+ 	err = gswip_switch_r_timeout(priv, GSWIP_BM_RAM_CTRL,
+ 				     GSWIP_BM_RAM_CTRL_BAS);
+ 	if (err) {
+-		dev_err(priv->dev, "timeout while reading table: %u, index: %u",
++		dev_err(priv->dev, "timeout while reading table: %u, index: %u\n",
+ 			table, index);
+ 		return 0;
+ 	}
+@@ -2009,7 +2009,7 @@ static void gswip_gphy_fw_remove(struct
+ 
+ 	ret = regmap_write(priv->rcu_regmap, gphy_fw->fw_addr_offset, 0);
+ 	if (ret)
+-		dev_err(priv->dev, "can not reset GPHY FW pointer");
++		dev_err(priv->dev, "can not reset GPHY FW pointer\n");
+ 
+ 	clk_disable_unprepare(gphy_fw->clk_gate);
+ 
+@@ -2038,7 +2038,7 @@ static int gswip_gphy_fw_list(struct gsw
+ 			priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;
+ 			break;
+ 		default:
+-			dev_err(dev, "unknown GSWIP version: 0x%x", version);
++			dev_err(dev, "unknown GSWIP version: 0x%x\n", version);
+ 			return -ENOENT;
+ 		}
+ 	}
+@@ -2048,7 +2048,7 @@ static int gswip_gphy_fw_list(struct gsw
+ 		priv->gphy_fw_name_cfg = match->data;
+ 
+ 	if (!priv->gphy_fw_name_cfg) {
+-		dev_err(dev, "GPHY compatible type not supported");
++		dev_err(dev, "GPHY compatible type not supported\n");
+ 		return -ENOENT;
+ 	}
+ 
+@@ -2150,7 +2150,7 @@ static int gswip_probe(struct platform_d
+ 			return -EINVAL;
+ 		break;
+ 	default:
+-		dev_err(dev, "unknown GSWIP version: 0x%x", version);
++		dev_err(dev, "unknown GSWIP version: 0x%x\n", version);
+ 		return -ENOENT;
+ 	}
+ 
+@@ -2181,7 +2181,7 @@ static int gswip_probe(struct platform_d
+ 		goto mdio_bus;
+ 	}
+ 	if (!dsa_is_cpu_port(priv->ds, priv->hw_info->cpu_port)) {
+-		dev_err(dev, "wrong CPU port defined, HW only supports port: %i",
++		dev_err(dev, "wrong CPU port defined, HW only supports port: %i\n",
+ 			priv->hw_info->cpu_port);
+ 		err = -EINVAL;
+ 		goto disable_switch;
diff --git a/target/linux/lantiq/patches-6.6/0733-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch b/target/linux/lantiq/patches-6.6/0734-v6.11-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch
similarity index 81%
rename from target/linux/lantiq/patches-6.6/0733-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch
rename to target/linux/lantiq/patches-6.6/0734-v6.11-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch
index f30e7ab00c..7894979707 100644
--- a/target/linux/lantiq/patches-6.6/0733-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch
+++ b/target/linux/lantiq/patches-6.6/0734-v6.11-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch
@@ -1,8 +1,7 @@
-From 4d3dd68a1c56674ff666d0622b545992fac31754 Mon Sep 17 00:00:00 2001
+From 1763b155da022ac0f984463e68cb0cda8ffc1fe8 Mon Sep 17 00:00:00 2001
 From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Sun, 31 Jul 2022 22:54:52 +0200
-Subject: [PATCH 733/768] net: dsa: lantiq_gswip: Use dev_err_probe where
- appropriate
+Date: Tue, 11 Jun 2024 15:54:26 +0200
+Subject: net: dsa: lantiq_gswip: Use dev_err_probe where appropriate
 
 dev_err_probe() can be used to simplify the existing code. Also it means
 we get rid of the following warning which is seen whenever the PMAC
@@ -11,8 +10,13 @@ probed yet:
   gswip 1e108000.switch: dsa switch register failed: -517
 
 Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-5-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
- drivers/net/dsa/lantiq_gswip.c | 53 ++++++++++++++++------------------
+ drivers/net/dsa/lantiq_gswip.c | 53 ++++++++++++++++++++----------------------
  1 file changed, 25 insertions(+), 28 deletions(-)
 
 --- a/drivers/net/dsa/lantiq_gswip.c
@@ -70,10 +74,10 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
  			priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;
  			break;
  		default:
--			dev_err(dev, "unknown GSWIP version: 0x%x", version);
+-			dev_err(dev, "unknown GSWIP version: 0x%x\n", version);
 -			return -ENOENT;
 +			return dev_err_probe(dev, -ENOENT,
-+					     "unknown GSWIP version: 0x%x",
++					     "unknown GSWIP version: 0x%x\n",
 +					     version);
  		}
  	}
@@ -83,12 +87,12 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
  		priv->gphy_fw_name_cfg = match->data;
  
 -	if (!priv->gphy_fw_name_cfg) {
--		dev_err(dev, "GPHY compatible type not supported");
+-		dev_err(dev, "GPHY compatible type not supported\n");
 -		return -ENOENT;
 -	}
 +	if (!priv->gphy_fw_name_cfg)
 +		return dev_err_probe(dev, -ENOENT,
-+				     "GPHY compatible type not supported");
++				     "GPHY compatible type not supported\n");
  
  	priv->num_gphy_fw = of_get_available_child_count(gphy_fw_list_np);
  	if (!priv->num_gphy_fw)
@@ -96,10 +100,10 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
  			return -EINVAL;
  		break;
  	default:
--		dev_err(dev, "unknown GSWIP version: 0x%x", version);
+-		dev_err(dev, "unknown GSWIP version: 0x%x\n", version);
 -		return -ENOENT;
 +		return dev_err_probe(dev, -ENOENT,
-+				     "unknown GSWIP version: 0x%x", version);
++				     "unknown GSWIP version: 0x%x\n", version);
  	}
  
  	/* bring up the mdio bus */
@@ -134,11 +138,11 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
  		goto mdio_bus;
  	}
  	if (!dsa_is_cpu_port(priv->ds, priv->hw_info->cpu_port)) {
--		dev_err(dev, "wrong CPU port defined, HW only supports port: %i",
+-		dev_err(dev, "wrong CPU port defined, HW only supports port: %i\n",
 -			priv->hw_info->cpu_port);
 -		err = -EINVAL;
 +		err = dev_err_probe(dev, -EINVAL,
-+				    "wrong CPU port defined, HW only supports port: %i",
++				    "wrong CPU port defined, HW only supports port: %i\n",
 +				    priv->hw_info->cpu_port);
  		goto disable_switch;
  	}
diff --git a/target/linux/lantiq/patches-6.6/0734-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch b/target/linux/lantiq/patches-6.6/0735-v6.11-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch
similarity index 59%
rename from target/linux/lantiq/patches-6.6/0734-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch
rename to target/linux/lantiq/patches-6.6/0735-v6.11-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch
index de8416380a..b7de069c5f 100644
--- a/target/linux/lantiq/patches-6.6/0734-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch
+++ b/target/linux/lantiq/patches-6.6/0735-v6.11-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch
@@ -1,13 +1,17 @@
-From 8cf0b680abc157adeec3fb93a10354c470694535 Mon Sep 17 00:00:00 2001
+From f5ebf9ab60940b00c36dfe64add41c80f3daff6a Mon Sep 17 00:00:00 2001
 From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Thu, 28 Jul 2022 22:37:11 +0200
-Subject: [PATCH 734/768] net: dsa: lantiq_gswip: Don't manually call
- gswip_port_enable()
+Date: Tue, 11 Jun 2024 15:54:27 +0200
+Subject: net: dsa: lantiq_gswip: Don't manually call gswip_port_enable()
 
 We don't need to manually call gswip_port_enable() from within
 gswip_setup() for the CPU port. DSA does this automatically for us.
 
 Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-6-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
  drivers/net/dsa/lantiq_gswip.c | 2 --
  1 file changed, 2 deletions(-)
diff --git a/target/linux/lantiq/patches-6.6/0735-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch b/target/linux/lantiq/patches-6.6/0736-v6.11-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch
similarity index 80%
rename from target/linux/lantiq/patches-6.6/0735-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch
rename to target/linux/lantiq/patches-6.6/0736-v6.11-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch
index a653c85841..0baca3d7c2 100644
--- a/target/linux/lantiq/patches-6.6/0735-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch
+++ b/target/linux/lantiq/patches-6.6/0736-v6.11-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch
@@ -1,7 +1,7 @@
-From 54a2f7f2c134738bd3f4ea0a213138d169f2726e Mon Sep 17 00:00:00 2001
+From 86b9ea6412af41914ef6549f85a849c3b987f4f3 Mon Sep 17 00:00:00 2001
 From: Martin Schiller <ms at dev.tdt.de>
-Date: Fri, 10 May 2024 13:52:10 +0200
-Subject: [PATCH] net: dsa: lantiq_gswip: do also enable or disable cpu port
+Date: Tue, 11 Jun 2024 15:54:28 +0200
+Subject: net: dsa: lantiq_gswip: do also enable or disable cpu port
 
 Before commit 74be4babe72f ("net: dsa: do not enable or disable non user
 ports"), gswip_port_enable/disable() were also executed for the cpu port
@@ -9,10 +9,13 @@ in gswip_setup() which disabled the cpu port during initialization.
 
 Let's restore this by removing the dsa_is_user_port checks. Also, let's
 clean up the gswip_port_enable() function so that we only have to check
-for the cpu port once.
+for the cpu port once. The operation reordering done here is safe.
 
-Fixes: 74be4babe72f ("net: dsa: do not enable or disable non user ports")
 Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Link: https://lore.kernel.org/r/20240611135434.3180973-7-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
  drivers/net/dsa/lantiq_gswip.c | 24 ++++++++----------------
  1 file changed, 8 insertions(+), 16 deletions(-)
diff --git a/target/linux/lantiq/patches-6.6/0736-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch b/target/linux/lantiq/patches-6.6/0737-v6.11-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch
similarity index 70%
rename from target/linux/lantiq/patches-6.6/0736-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch
rename to target/linux/lantiq/patches-6.6/0737-v6.11-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch
index fd19982264..493aea4295 100644
--- a/target/linux/lantiq/patches-6.6/0736-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch
+++ b/target/linux/lantiq/patches-6.6/0737-v6.11-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch
@@ -1,13 +1,18 @@
-From 8ab55ac9678ca1f50f786c84484599dd675c5a9f Mon Sep 17 00:00:00 2001
+From 7168ec1b06691295db6b335e5f5f6c86c7061213 Mon Sep 17 00:00:00 2001
 From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Wed, 18 May 2022 23:53:09 +0200
-Subject: [PATCH 736/768] net: dsa: lantiq_gswip: Use dsa_is_cpu_port() in
+Date: Tue, 11 Jun 2024 15:54:29 +0200
+Subject: net: dsa: lantiq_gswip: Use dsa_is_cpu_port() in
  gswip_port_change_mtu()
 
 Make the check for the CPU port in gswip_port_change_mtu() consistent
 with other areas of the driver by using dsa_is_cpu_port().
 
 Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-8-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
  drivers/net/dsa/lantiq_gswip.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/target/linux/lantiq/patches-6.6/0738-net-dsa-lantiq_gswip-Consistently-use-macros-for-the.patch b/target/linux/lantiq/patches-6.6/0738-net-dsa-lantiq_gswip-Consistently-use-macros-for-the.patch
deleted file mode 100644
index 0ea90db483..0000000000
--- a/target/linux/lantiq/patches-6.6/0738-net-dsa-lantiq_gswip-Consistently-use-macros-for-the.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 61e9b19f6e6174afa7540f0b468a69bc940b91d4 Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Mon, 1 Aug 2022 21:23:49 +0200
-Subject: [PATCH 738/768] net: dsa: lantiq_gswip: Consistently use macros for
- the mac bridge table
-
-Introduce a new GSWIP_TABLE_MAC_BRIDGE_PORT macro and use it throughout
-the driver. Also update GSWIP_TABLE_MAC_BRIDGE_STATIC to use the BIT()
-macro. This makes the driver code easier to understand.
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
----
- drivers/net/dsa/lantiq_gswip.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
---- a/drivers/net/dsa/lantiq_gswip.c
-+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -236,7 +236,8 @@
- #define GSWIP_TABLE_ACTIVE_VLAN		0x01
- #define GSWIP_TABLE_VLAN_MAPPING	0x02
- #define GSWIP_TABLE_MAC_BRIDGE		0x0b
--#define  GSWIP_TABLE_MAC_BRIDGE_STATIC	0x01	/* Static not, aging entry */
-+#define  GSWIP_TABLE_MAC_BRIDGE_STATIC	BIT(0)		/* Static not, aging entry */
-+#define  GSWIP_TABLE_MAC_BRIDGE_PORT	GENMASK(7, 4)	/* Port on learned entries */
- 
- #define XRX200_GPHY_FW_ALIGN	(16 * 1024)
- 
-@@ -1300,7 +1301,8 @@ static void gswip_port_fast_age(struct d
- 		if (mac_bridge.val[1] & GSWIP_TABLE_MAC_BRIDGE_STATIC)
- 			continue;
- 
--		if (((mac_bridge.val[0] & GENMASK(7, 4)) >> 4) != port)
-+		if (port != FIELD_GET(GSWIP_TABLE_MAC_BRIDGE_PORT,
-+				      mac_bridge.val[0]))
- 			continue;
- 
- 		mac_bridge.valid = false;
-@@ -1438,7 +1440,8 @@ static int gswip_port_fdb_dump(struct ds
- 					return err;
- 			}
- 		} else {
--			if (((mac_bridge.val[0] & GENMASK(7, 4)) >> 4) == port) {
-+			if (port == FIELD_GET(GSWIP_TABLE_MAC_BRIDGE_PORT,
-+					      mac_bridge.val[0])) {
- 				err = cb(addr, 0, false, data);
- 				if (err)
- 					return err;
diff --git a/target/linux/lantiq/patches-6.6/0737-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch b/target/linux/lantiq/patches-6.6/0738-v6.11-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch
similarity index 61%
rename from target/linux/lantiq/patches-6.6/0737-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch
rename to target/linux/lantiq/patches-6.6/0738-v6.11-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch
index 74e52d1d18..773d43ee19 100644
--- a/target/linux/lantiq/patches-6.6/0737-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch
+++ b/target/linux/lantiq/patches-6.6/0738-v6.11-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch
@@ -1,12 +1,17 @@
-From ef98b183d8fc7187a2efcc21c8f54f3cf061d556 Mon Sep 17 00:00:00 2001
+From c927b6e47b5cc7324217bf5fe7e6ccd0633971a0 Mon Sep 17 00:00:00 2001
 From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Tue, 17 May 2022 22:39:58 +0200
-Subject: [PATCH 737/768] net: dsa: lantiq_gswip: Change literal 6 to ETH_ALEN
+Date: Tue, 11 Jun 2024 15:54:30 +0200
+Subject: net: dsa: lantiq_gswip: Change literal 6 to ETH_ALEN
 
 The addr variable in gswip_port_fdb_dump() stores a mac address. Use
 ETH_ALEN to make this consistent across other drivers.
 
 Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-9-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
  drivers/net/dsa/lantiq_gswip.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/linux/lantiq/patches-6.6/0739-net-dsa-lantiq_gswip-Forbid-gswip_add_single_port_br.patch b/target/linux/lantiq/patches-6.6/0739-net-dsa-lantiq_gswip-Forbid-gswip_add_single_port_br.patch
deleted file mode 100644
index 1347a98c5c..0000000000
--- a/target/linux/lantiq/patches-6.6/0739-net-dsa-lantiq_gswip-Forbid-gswip_add_single_port_br.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 7a9e185075ababa827d1d3a33b787ad6d718c8ec Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Mon, 1 Aug 2022 22:24:24 +0200
-Subject: [PATCH 739/768] net: dsa: lantiq_gswip: Forbid
- gswip_add_single_port_br on the CPU port
-
-Calling gswip_add_single_port_br() with the CPU port would be a bug
-because then only the CPU port could talk to itself. Add the CPU port to
-the validation at the beginning of gswip_add_single_port_br().
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
----
- drivers/net/dsa/lantiq_gswip.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/dsa/lantiq_gswip.c
-+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -650,7 +650,7 @@ static int gswip_add_single_port_br(stru
- 	unsigned int max_ports = priv->hw_info->max_ports;
- 	int err;
- 
--	if (port >= max_ports) {
-+	if (port >= max_ports || dsa_is_cpu_port(priv->ds, port)) {
- 		dev_err(priv->dev, "single port for %i supported\n", port);
- 		return -EIO;
- 	}
diff --git a/target/linux/lantiq/patches-6.6/0739-v6.11-net-dsa-lantiq_gswip-Consistently-use-macros-for-the.patch b/target/linux/lantiq/patches-6.6/0739-v6.11-net-dsa-lantiq_gswip-Consistently-use-macros-for-the.patch
new file mode 100644
index 0000000000..31f2e60bfb
--- /dev/null
+++ b/target/linux/lantiq/patches-6.6/0739-v6.11-net-dsa-lantiq_gswip-Consistently-use-macros-for-the.patch
@@ -0,0 +1,82 @@
+From e6c34597f89ac98c06176eed57f125252015a330 Mon Sep 17 00:00:00 2001
+From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Date: Tue, 11 Jun 2024 15:54:31 +0200
+Subject: net: dsa: lantiq_gswip: Consistently use macros for the mac bridge
+ table
+
+Only bits [5:0] in mac_bridge.key[3] are reserved for the FID.
+Also, for dynamic (learned) entries, bits [7:4] in mac_bridge.val[0]
+represents the port.
+
+Introduce new macros GSWIP_TABLE_MAC_BRIDGE_KEY3_FID and
+GSWIP_TABLE_MAC_BRIDGE_VAL0_PORT macro and use it throughout the driver.
+Also rename and update GSWIP_TABLE_MAC_BRIDGE_VAL1_STATIC to use the
+BIT() macro. This makes the driver code easier to understand.
+
+Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Link: https://lore.kernel.org/r/20240611135434.3180973-10-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/dsa/lantiq_gswip.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/dsa/lantiq_gswip.c
++++ b/drivers/net/dsa/lantiq_gswip.c
+@@ -236,7 +236,9 @@
+ #define GSWIP_TABLE_ACTIVE_VLAN		0x01
+ #define GSWIP_TABLE_VLAN_MAPPING	0x02
+ #define GSWIP_TABLE_MAC_BRIDGE		0x0b
+-#define  GSWIP_TABLE_MAC_BRIDGE_STATIC	0x01	/* Static not, aging entry */
++#define  GSWIP_TABLE_MAC_BRIDGE_KEY3_FID	GENMASK(5, 0)	/* Filtering identifier */
++#define  GSWIP_TABLE_MAC_BRIDGE_VAL0_PORT	GENMASK(7, 4)	/* Port on learned entries */
++#define  GSWIP_TABLE_MAC_BRIDGE_VAL1_STATIC	BIT(0)		/* Static, non-aging entry */
+ 
+ #define XRX200_GPHY_FW_ALIGN	(16 * 1024)
+ 
+@@ -1297,10 +1299,11 @@ static void gswip_port_fast_age(struct d
+ 		if (!mac_bridge.valid)
+ 			continue;
+ 
+-		if (mac_bridge.val[1] & GSWIP_TABLE_MAC_BRIDGE_STATIC)
++		if (mac_bridge.val[1] & GSWIP_TABLE_MAC_BRIDGE_VAL1_STATIC)
+ 			continue;
+ 
+-		if (((mac_bridge.val[0] & GENMASK(7, 4)) >> 4) != port)
++		if (port != FIELD_GET(GSWIP_TABLE_MAC_BRIDGE_VAL0_PORT,
++				      mac_bridge.val[0]))
+ 			continue;
+ 
+ 		mac_bridge.valid = false;
+@@ -1375,9 +1378,9 @@ static int gswip_port_fdb(struct dsa_swi
+ 	mac_bridge.key[0] = addr[5] | (addr[4] << 8);
+ 	mac_bridge.key[1] = addr[3] | (addr[2] << 8);
+ 	mac_bridge.key[2] = addr[1] | (addr[0] << 8);
+-	mac_bridge.key[3] = fid;
++	mac_bridge.key[3] = FIELD_PREP(GSWIP_TABLE_MAC_BRIDGE_KEY3_FID, fid);
+ 	mac_bridge.val[0] = add ? BIT(port) : 0; /* port map */
+-	mac_bridge.val[1] = GSWIP_TABLE_MAC_BRIDGE_STATIC;
++	mac_bridge.val[1] = GSWIP_TABLE_MAC_BRIDGE_VAL1_STATIC;
+ 	mac_bridge.valid = add;
+ 
+ 	err = gswip_pce_table_entry_write(priv, &mac_bridge);
+@@ -1431,14 +1434,15 @@ static int gswip_port_fdb_dump(struct ds
+ 		addr[2] = (mac_bridge.key[1] >> 8) & 0xff;
+ 		addr[1] = mac_bridge.key[2] & 0xff;
+ 		addr[0] = (mac_bridge.key[2] >> 8) & 0xff;
+-		if (mac_bridge.val[1] & GSWIP_TABLE_MAC_BRIDGE_STATIC) {
++		if (mac_bridge.val[1] & GSWIP_TABLE_MAC_BRIDGE_VAL1_STATIC) {
+ 			if (mac_bridge.val[0] & BIT(port)) {
+ 				err = cb(addr, 0, true, data);
+ 				if (err)
+ 					return err;
+ 			}
+ 		} else {
+-			if (((mac_bridge.val[0] & GENMASK(7, 4)) >> 4) == port) {
++			if (port == FIELD_GET(GSWIP_TABLE_MAC_BRIDGE_VAL0_PORT,
++					      mac_bridge.val[0])) {
+ 				err = cb(addr, 0, false, data);
+ 				if (err)
+ 					return err;
diff --git a/target/linux/lantiq/patches-6.6/0740-net-dsa-lantiq_gswip-Fix-error-message-in-gswip_add_.patch b/target/linux/lantiq/patches-6.6/0740-net-dsa-lantiq_gswip-Fix-error-message-in-gswip_add_.patch
deleted file mode 100644
index 732588308e..0000000000
--- a/target/linux/lantiq/patches-6.6/0740-net-dsa-lantiq_gswip-Fix-error-message-in-gswip_add_.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 28be6bfb735d851e646abb05b8e24eb6764596f5 Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Mon, 1 Aug 2022 22:26:20 +0200
-Subject: [PATCH 740/768] net: dsa: lantiq_gswip: Fix error message in
- gswip_add_single_port_br()
-
-The error message is printed when the port cannot be used. Update the
-error message to reflect that.
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
----
- drivers/net/dsa/lantiq_gswip.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/dsa/lantiq_gswip.c
-+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -651,7 +651,8 @@ static int gswip_add_single_port_br(stru
- 	int err;
- 
- 	if (port >= max_ports || dsa_is_cpu_port(priv->ds, port)) {
--		dev_err(priv->dev, "single port for %i supported\n", port);
-+		dev_err(priv->dev, "single port for %i is not supported\n",
-+			port);
- 		return -EIO;
- 	}
- 
diff --git a/target/linux/lantiq/patches-6.6/0740-v6.11-net-dsa-lantiq_gswip-Remove-dead-code-from-gswip_add_single_port_br.patch b/target/linux/lantiq/patches-6.6/0740-v6.11-net-dsa-lantiq_gswip-Remove-dead-code-from-gswip_add_single_port_br.patch
new file mode 100644
index 0000000000..4e297715c1
--- /dev/null
+++ b/target/linux/lantiq/patches-6.6/0740-v6.11-net-dsa-lantiq_gswip-Remove-dead-code-from-gswip_add_single_port_br.patch
@@ -0,0 +1,35 @@
+From b068706b7831ccf7c7f1a56a65862fbcc28d061f Mon Sep 17 00:00:00 2001
+From: Martin Schiller <ms at dev.tdt.de>
+Date: Tue, 11 Jun 2024 15:54:32 +0200
+Subject: net: dsa: lantiq_gswip: Remove dead code from
+ gswip_add_single_port_br()
+
+The port validation in gswip_add_single_port_br() is superfluous and
+can be omitted.
+
+Suggested-by: Vladimir Oltean <olteanv at gmail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Link: https://lore.kernel.org/r/20240611135434.3180973-11-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/dsa/lantiq_gswip.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/drivers/net/dsa/lantiq_gswip.c
++++ b/drivers/net/dsa/lantiq_gswip.c
+@@ -648,14 +648,8 @@ static int gswip_add_single_port_br(stru
+ 	struct gswip_pce_table_entry vlan_active = {0,};
+ 	struct gswip_pce_table_entry vlan_mapping = {0,};
+ 	unsigned int cpu_port = priv->hw_info->cpu_port;
+-	unsigned int max_ports = priv->hw_info->max_ports;
+ 	int err;
+ 
+-	if (port >= max_ports) {
+-		dev_err(priv->dev, "single port for %i supported\n", port);
+-		return -EIO;
+-	}
+-
+ 	vlan_active.index = port + 1;
+ 	vlan_active.table = GSWIP_TABLE_ACTIVE_VLAN;
+ 	vlan_active.key[0] = 0; /* vid */
diff --git a/target/linux/lantiq/patches-6.6/0741-net-dsa-lantiq_gswip-Fix-comments-in-gswip_port_vlan.patch b/target/linux/lantiq/patches-6.6/0741-v6.11-net-dsa-lantiq_gswip-Update-comments-in-gswip_port_vlan.patch
similarity index 65%
rename from target/linux/lantiq/patches-6.6/0741-net-dsa-lantiq_gswip-Fix-comments-in-gswip_port_vlan.patch
rename to target/linux/lantiq/patches-6.6/0741-v6.11-net-dsa-lantiq_gswip-Update-comments-in-gswip_port_vlan.patch
index 679dd53c47..16702c9356 100644
--- a/target/linux/lantiq/patches-6.6/0741-net-dsa-lantiq_gswip-Fix-comments-in-gswip_port_vlan.patch
+++ b/target/linux/lantiq/patches-6.6/0741-v6.11-net-dsa-lantiq_gswip-Update-comments-in-gswip_port_vlan.patch
@@ -1,7 +1,7 @@
-From 45a0371568b1f050d787564875653f41a1f6fb98 Mon Sep 17 00:00:00 2001
+From e19fbe3996aae35a467ebad35ff2b8d84975a65c Mon Sep 17 00:00:00 2001
 From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Fri, 14 Oct 2022 14:06:40 +0200
-Subject: [PATCH 741/768] net: dsa: lantiq_gswip: Fix comments in
+Date: Tue, 11 Jun 2024 15:54:33 +0200
+Subject: net: dsa: lantiq_gswip: Update comments in
  gswip_port_vlan_filtering()
 
 Update the comments in gswip_port_vlan_filtering() so it's clear that
@@ -10,13 +10,18 @@ for "port based VLAN".
 
 Suggested-by: Martin Schiller <ms at dev.tdt.de>
 Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-12-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 ---
  drivers/net/dsa/lantiq_gswip.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 --- a/drivers/net/dsa/lantiq_gswip.c
 +++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -779,7 +779,7 @@ static int gswip_port_vlan_filtering(str
+@@ -773,7 +773,7 @@ static int gswip_port_vlan_filtering(str
  	}
  
  	if (vlan_filtering) {
@@ -25,7 +30,7 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
  		gswip_switch_mask(priv,
  				  GSWIP_PCE_VCTRL_VSR,
  				  GSWIP_PCE_VCTRL_UVR | GSWIP_PCE_VCTRL_VIMR |
-@@ -788,7 +788,7 @@ static int gswip_port_vlan_filtering(str
+@@ -782,7 +782,7 @@ static int gswip_port_vlan_filtering(str
  		gswip_switch_mask(priv, GSWIP_PCE_PCTRL_0_TVM, 0,
  				  GSWIP_PCE_PCTRL_0p(port));
  	} else {
diff --git a/target/linux/lantiq/patches-6.6/0742-net-dsa-lantiq_gswip-Add-and-use-a-GSWIP_TABLE_MAC_B.patch b/target/linux/lantiq/patches-6.6/0742-net-dsa-lantiq_gswip-Add-and-use-a-GSWIP_TABLE_MAC_B.patch
deleted file mode 100644
index 3d284c2ea6..0000000000
--- a/target/linux/lantiq/patches-6.6/0742-net-dsa-lantiq_gswip-Add-and-use-a-GSWIP_TABLE_MAC_B.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 4775f9543e691d9a2f5dd9aa5d46c66d37928250 Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Fri, 14 Oct 2022 14:19:05 +0200
-Subject: [PATCH 742/768] net: dsa: lantiq_gswip: Add and use a
- GSWIP_TABLE_MAC_BRIDGE_FID macro
-
-Only bits [5:0] in mac_bridge.key[3] are reserved for the FID. Add a
-macro so this becomes obvious when reading the driver code.
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
----
- drivers/net/dsa/lantiq_gswip.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/dsa/lantiq_gswip.c
-+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -238,6 +238,7 @@
- #define GSWIP_TABLE_MAC_BRIDGE		0x0b
- #define  GSWIP_TABLE_MAC_BRIDGE_STATIC	BIT(0)		/* Static not, aging entry */
- #define  GSWIP_TABLE_MAC_BRIDGE_PORT	GENMASK(7, 4)	/* Port on learned entries */
-+#define  GSWIP_TABLE_MAC_BRIDGE_FID	GENMASK(5, 0)	/* Filtering identifier */
- 
- #define XRX200_GPHY_FW_ALIGN	(16 * 1024)
- 
-@@ -1378,7 +1379,7 @@ static int gswip_port_fdb(struct dsa_swi
- 	mac_bridge.key[0] = addr[5] | (addr[4] << 8);
- 	mac_bridge.key[1] = addr[3] | (addr[2] << 8);
- 	mac_bridge.key[2] = addr[1] | (addr[0] << 8);
--	mac_bridge.key[3] = fid;
-+	mac_bridge.key[3] = FIELD_PREP(GSWIP_TABLE_MAC_BRIDGE_FID, fid);
- 	mac_bridge.val[0] = add ? BIT(port) : 0; /* port map */
- 	mac_bridge.val[1] = GSWIP_TABLE_MAC_BRIDGE_STATIC;
- 	mac_bridge.valid = add;
diff --git a/target/linux/lantiq/patches-6.6/0742-v6.11-net-dsa-lantiq_gswip-Improve-error-message-in-gswip_.patch b/target/linux/lantiq/patches-6.6/0742-v6.11-net-dsa-lantiq_gswip-Improve-error-message-in-gswip_.patch
new file mode 100644
index 0000000000..56d882c9f9
--- /dev/null
+++ b/target/linux/lantiq/patches-6.6/0742-v6.11-net-dsa-lantiq_gswip-Improve-error-message-in-gswip_.patch
@@ -0,0 +1,30 @@
+From 3b0a95ed7782dce88a5ef4860dcaab962cec9527 Mon Sep 17 00:00:00 2001
+From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Date: Tue, 11 Jun 2024 15:54:34 +0200
+Subject: net: dsa: lantiq_gswip: Improve error message in gswip_port_fdb()
+
+Print that no FID is found for bridge %s instead of the incorrect
+message that the port is not part of a bridge.
+
+Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
+Acked-by: Hauke Mehrtens <hauke at hauke-m.de>
+Reviewed-by: Vladimir Oltean <olteanv at gmail.com>
+Signed-off-by: Martin Schiller <ms at dev.tdt.de>
+Link: https://lore.kernel.org/r/20240611135434.3180973-13-ms@dev.tdt.de
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/dsa/lantiq_gswip.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/dsa/lantiq_gswip.c
++++ b/drivers/net/dsa/lantiq_gswip.c
+@@ -1363,7 +1363,8 @@ static int gswip_port_fdb(struct dsa_swi
+ 	}
+ 
+ 	if (fid == -1) {
+-		dev_err(priv->dev, "Port not part of a bridge\n");
++		dev_err(priv->dev, "no FID found for bridge %s\n",
++			bridge->name);
+ 		return -EINVAL;
+ 	}
+ 
diff --git a/target/linux/lantiq/patches-6.6/0743-net-dsa-lantiq_gswip-Improve-error-message-in-gswip_.patch b/target/linux/lantiq/patches-6.6/0743-net-dsa-lantiq_gswip-Improve-error-message-in-gswip_.patch
deleted file mode 100644
index 5c756c5a19..0000000000
--- a/target/linux/lantiq/patches-6.6/0743-net-dsa-lantiq_gswip-Improve-error-message-in-gswip_.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 00b5121435ccd4ce54f79179dd9ee3e2610d7dcf Mon Sep 17 00:00:00 2001
-From: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
-Date: Fri, 14 Oct 2022 16:31:57 +0200
-Subject: [PATCH 743/768] net: dsa: lantiq_gswip: Improve error message in
- gswip_port_fdb()
-
-Print the port which is not found to be part of a bridge so it's easier
-to investigate the underlying issue.
-
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
----
- drivers/net/dsa/lantiq_gswip.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/dsa/lantiq_gswip.c
-+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -1370,7 +1370,8 @@ static int gswip_port_fdb(struct dsa_swi
- 	}
- 
- 	if (fid == -1) {
--		dev_err(priv->dev, "Port not part of a bridge\n");
-+		dev_err(priv->dev,
-+			"Port %d is not known to be part of bridge\n", port);
- 		return -EINVAL;
- 	}
- 




More information about the lede-commits mailing list