From: Martin Schiller Date: Wed, 26 Jun 2024 08:39:18 +0000 (+0200) Subject: lantiq: replace gswip patches with upstream version X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=75cd4ef48dffea8c659605786cf426962dd6bfc4;p=openwrt%2Fstaging%2Fansuel.git lantiq: replace gswip patches with upstream version Replace recently added patches with version accepted upstream. Signed-off-by: Martin Schiller Link: https://github.com/openwrt/openwrt/pull/15811 Signed-off-by: Hauke Mehrtens --- 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 -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 ---- - 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@e108000 { - - port@6 { - reg = <0x6>; -+ phy-mode = "internal"; - ethernet = <ð0>; -+ -+ 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 +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 +Reviewed-by: Rob Herring (Arm) +Reviewed-by: Vladimir Oltean +Link: https://lore.kernel.org/r/20240611135434.3180973-2-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + .../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 ++ ++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@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@0 { ++ reg = <0>; ++ label = "lan3"; ++ phy-mode = "rgmii"; ++ phy-handle = <&phy0>; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan4"; ++ phy-mode = "rgmii"; ++ phy-handle = <&phy1>; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan2"; ++ phy-mode = "internal"; ++ phy-handle = <&phy11>; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "lan1"; ++ phy-mode = "internal"; ++ phy-handle = <&phy13>; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "wan"; ++ phy-mode = "rgmii"; ++ phy-handle = <&phy5>; ++ }; ++ ++ port@6 { ++ reg = <0x6>; ++ phy-mode = "internal"; ++ ethernet = <ð0>; ++ ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++ }; ++ }; ++ ++ mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "lantiq,xrx200-mdio"; ++ ++ phy0: ethernet-phy@0 { ++ reg = <0x0>; ++ }; ++ phy1: ethernet-phy@1 { ++ reg = <0x1>; ++ }; ++ phy5: ethernet-phy@5 { ++ reg = <0x5>; ++ }; ++ phy11: ethernet-phy@11 { ++ reg = <0x11>; ++ }; ++ phy13: ethernet-phy@13 { ++ reg = <0x13>; ++ }; ++ }; ++ ++ gphy-fw { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw"; ++ lantiq,rcu = <&rcu0>; ++ ++ gphy@20 { ++ reg = <0x20>; ++ ++ resets = <&reset0 31 30>; ++ reset-names = "gphy"; ++ }; ++ ++ gphy@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@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@0 { +- reg = <0>; +- label = "lan3"; +- phy-mode = "rgmii"; +- phy-handle = <&phy0>; +- }; +- +- port@1 { +- reg = <1>; +- label = "lan4"; +- phy-mode = "rgmii"; +- phy-handle = <&phy1>; +- }; +- +- port@2 { +- reg = <2>; +- label = "lan2"; +- phy-mode = "internal"; +- phy-handle = <&phy11>; +- }; +- +- port@4 { +- reg = <4>; +- label = "lan1"; +- phy-mode = "internal"; +- phy-handle = <&phy13>; +- }; +- +- port@5 { +- reg = <5>; +- label = "wan"; +- phy-mode = "rgmii"; +- phy-handle = <&phy5>; +- }; +- +- port@6 { +- reg = <0x6>; +- ethernet = <ð0>; +- }; +- }; +- +- mdio { +- #address-cells = <1>; +- #size-cells = <0>; +- compatible = "lantiq,xrx200-mdio"; +- reg = <0>; +- +- phy0: ethernet-phy@0 { +- reg = <0x0>; +- }; +- phy1: ethernet-phy@1 { +- reg = <0x1>; +- }; +- phy5: ethernet-phy@5 { +- reg = <0x5>; +- }; +- phy11: ethernet-phy@11 { +- reg = <0x11>; +- }; +- phy13: ethernet-phy@13 { +- reg = <0x13>; +- }; +- }; +- +- gphy-fw { +- compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw"; +- lantiq,rcu = <&rcu0>; +- #address-cells = <1>; +- #size-cells = <0>; +- +- gphy@20 { +- reg = <0x20>; +- +- resets = <&reset0 31 30>; +- reset-names = "gphy"; +- }; +- +- gphy@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 + L: netdev@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-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on.patch deleted file mode 100644 index 4800ee1dd2..0000000000 --- a/target/linux/lantiq/patches-6.6/0732-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a55b9d802e11baceb35bd312419ad82086065b08 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -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 - -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 ---- - drivers/net/dsa/lantiq_gswip.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/net/dsa/lantiq_gswip.c -+++ b/drivers/net/dsa/lantiq_gswip.c -@@ -1509,6 +1509,7 @@ static void gswip_xrx200_phylink_get_cap - case 2: - case 3: - case 4: -+ case 6: - __set_bit(PHY_INTERFACE_MODE_INTERNAL, - config->supported_interfaces); - break; -@@ -1540,6 +1541,7 @@ static void gswip_xrx300_phylink_get_cap - case 2: - case 3: - case 4: -+ case 6: - __set_bit(PHY_INTERFACE_MODE_INTERNAL, - config->supported_interfaces); - break; diff --git a/target/linux/lantiq/patches-6.6/0732-v6.11-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on-the-CPU-port.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 new file mode 100644 index 0000000000..305ad4c42c --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0732-v6.11-net-dsa-lantiq_gswip-Only-allow-phy-mode-internal-on-the-CPU-port.patch @@ -0,0 +1,38 @@ +From b98f122ebdac28b0c932f3f4474eb0927c39297b Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +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 +Reviewed-by: Vladimir Oltean +Acked-by: Hauke Mehrtens +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-3-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + drivers/net/dsa/lantiq_gswip.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/net/dsa/lantiq_gswip.c ++++ b/drivers/net/dsa/lantiq_gswip.c +@@ -1509,6 +1509,7 @@ static void gswip_xrx200_phylink_get_cap + case 2: + case 3: + case 4: ++ case 6: + __set_bit(PHY_INTERFACE_MODE_INTERNAL, + config->supported_interfaces); + break; +@@ -1540,6 +1541,7 @@ static void gswip_xrx300_phylink_get_cap + case 2: + case 3: + case 4: ++ case 6: + __set_bit(PHY_INTERFACE_MODE_INTERNAL, + config->supported_interfaces); + break; 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/0733-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch deleted file mode 100644 index f30e7ab00c..0000000000 --- a/target/linux/lantiq/patches-6.6/0733-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 4d3dd68a1c56674ff666d0622b545992fac31754 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sun, 31 Jul 2022 22:54:52 +0200 -Subject: [PATCH 733/768] 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 -(Ethernet controller which connects to GSWIP's CPU port) has not been -probed yet: - gswip 1e108000.switch: dsa switch register failed: -517 - -Signed-off-by: Martin Blumenstingl ---- - drivers/net/dsa/lantiq_gswip.c | 53 ++++++++++++++++------------------ - 1 file changed, 25 insertions(+), 28 deletions(-) - ---- a/drivers/net/dsa/lantiq_gswip.c -+++ b/drivers/net/dsa/lantiq_gswip.c -@@ -1919,11 +1919,9 @@ static int gswip_gphy_fw_load(struct gsw - msleep(200); - - ret = request_firmware(&fw, gphy_fw->fw_name, dev); -- if (ret) { -- dev_err(dev, "failed to load firmware: %s, error: %i\n", -- gphy_fw->fw_name, ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(dev, ret, "failed to load firmware: %s\n", -+ gphy_fw->fw_name); - - /* GPHY cores need the firmware code in a persistent and contiguous - * memory area with a 16 kB boundary aligned start address. -@@ -1936,9 +1934,9 @@ static int gswip_gphy_fw_load(struct gsw - dev_addr = ALIGN(dma_addr, XRX200_GPHY_FW_ALIGN); - memcpy(fw_addr, fw->data, fw->size); - } else { -- dev_err(dev, "failed to alloc firmware memory\n"); - release_firmware(fw); -- return -ENOMEM; -+ return dev_err_probe(dev, -ENOMEM, -+ "failed to alloc firmware memory\n"); - } - - release_firmware(fw); -@@ -1965,8 +1963,8 @@ static int gswip_gphy_fw_probe(struct gs - - gphy_fw->clk_gate = devm_clk_get(dev, gphyname); - if (IS_ERR(gphy_fw->clk_gate)) { -- dev_err(dev, "Failed to lookup gate clock\n"); -- return PTR_ERR(gphy_fw->clk_gate); -+ return dev_err_probe(dev, PTR_ERR(gphy_fw->clk_gate), -+ "Failed to lookup gate clock\n"); - } - - ret = of_property_read_u32(gphy_fw_np, "reg", &gphy_fw->fw_addr_offset); -@@ -1986,8 +1984,8 @@ static int gswip_gphy_fw_probe(struct gs - gphy_fw->fw_name = priv->gphy_fw_name_cfg->ge_firmware_name; - break; - default: -- dev_err(dev, "Unknown GPHY mode %d\n", gphy_mode); -- return -EINVAL; -+ return dev_err_probe(dev, -EINVAL, "Unknown GPHY mode %d\n", -+ gphy_mode); - } - - gphy_fw->reset = of_reset_control_array_get_exclusive(gphy_fw_np); -@@ -2038,8 +2036,9 @@ 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); -- return -ENOENT; -+ return dev_err_probe(dev, -ENOENT, -+ "unknown GSWIP version: 0x%x", -+ version); - } - } - -@@ -2047,10 +2046,9 @@ static int gswip_gphy_fw_list(struct gsw - if (match && match->data) - priv->gphy_fw_name_cfg = match->data; - -- if (!priv->gphy_fw_name_cfg) { -- dev_err(dev, "GPHY compatible type not supported"); -- return -ENOENT; -- } -+ if (!priv->gphy_fw_name_cfg) -+ return dev_err_probe(dev, -ENOENT, -+ "GPHY compatible type not supported"); - - priv->num_gphy_fw = of_get_available_child_count(gphy_fw_list_np); - if (!priv->num_gphy_fw) -@@ -2150,8 +2148,8 @@ static int gswip_probe(struct platform_d - return -EINVAL; - break; - default: -- dev_err(dev, "unknown GSWIP version: 0x%x", version); -- return -ENOENT; -+ return dev_err_probe(dev, -ENOENT, -+ "unknown GSWIP version: 0x%x", version); - } - - /* bring up the mdio bus */ -@@ -2159,10 +2157,9 @@ static int gswip_probe(struct platform_d - if (gphy_fw_np) { - err = gswip_gphy_fw_list(priv, gphy_fw_np, version); - of_node_put(gphy_fw_np); -- if (err) { -- dev_err(dev, "gphy fw probe failed\n"); -- return err; -- } -+ if (err) -+ return dev_err_probe(dev, err, -+ "gphy fw probe failed\n"); - } - - /* bring up the mdio bus */ -@@ -2170,20 +2167,20 @@ static int gswip_probe(struct platform_d - if (mdio_np) { - err = gswip_mdio(priv, mdio_np); - if (err) { -- dev_err(dev, "mdio probe failed\n"); -+ dev_err_probe(dev, err, "mdio probe failed\n"); - goto put_mdio_node; - } - } - - err = dsa_register_switch(priv->ds); - if (err) { -- dev_err(dev, "dsa switch register failed: %i\n", err); -+ dev_err_probe(dev, err, "dsa switch registration failed\n"); - 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", -- priv->hw_info->cpu_port); -- err = -EINVAL; -+ err = dev_err_probe(dev, -EINVAL, -+ "wrong CPU port defined, HW only supports port: %i", -+ priv->hw_info->cpu_port); - goto disable_switch; - } - 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 +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 +Signed-off-by: Martin Schiller +Reviewed-by: Andrew Lunn +Reviewed-by: Vladimir Oltean +Link: https://lore.kernel.org/r/20240611135434.3180973-4-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + 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/0734-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch b/target/linux/lantiq/patches-6.6/0734-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch deleted file mode 100644 index de8416380a..0000000000 --- a/target/linux/lantiq/patches-6.6/0734-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8cf0b680abc157adeec3fb93a10354c470694535 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Thu, 28 Jul 2022 22:37:11 +0200 -Subject: [PATCH 734/768] 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 ---- - drivers/net/dsa/lantiq_gswip.c | 2 -- - 1 file changed, 2 deletions(-) - ---- a/drivers/net/dsa/lantiq_gswip.c -+++ b/drivers/net/dsa/lantiq_gswip.c -@@ -891,8 +891,6 @@ static int gswip_setup(struct dsa_switch - - ds->mtu_enforcement_ingress = true; - -- gswip_port_enable(ds, cpu_port, NULL); -- - ds->configure_vlan_while_not_filtering = false; - - return 0; diff --git a/target/linux/lantiq/patches-6.6/0734-v6.11-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 new file mode 100644 index 0000000000..7894979707 --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0734-v6.11-net-dsa-lantiq_gswip-Use-dev_err_probe-where-appropr.patch @@ -0,0 +1,149 @@ +From 1763b155da022ac0f984463e68cb0cda8ffc1fe8 Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +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 +(Ethernet controller which connects to GSWIP's CPU port) has not been +probed yet: + gswip 1e108000.switch: dsa switch register failed: -517 + +Signed-off-by: Martin Blumenstingl +Acked-by: Hauke Mehrtens +Reviewed-by: Vladimir Oltean +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-5-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + drivers/net/dsa/lantiq_gswip.c | 53 ++++++++++++++++++++---------------------- + 1 file changed, 25 insertions(+), 28 deletions(-) + +--- a/drivers/net/dsa/lantiq_gswip.c ++++ b/drivers/net/dsa/lantiq_gswip.c +@@ -1919,11 +1919,9 @@ static int gswip_gphy_fw_load(struct gsw + msleep(200); + + ret = request_firmware(&fw, gphy_fw->fw_name, dev); +- if (ret) { +- dev_err(dev, "failed to load firmware: %s, error: %i\n", +- gphy_fw->fw_name, ret); +- return ret; +- } ++ if (ret) ++ return dev_err_probe(dev, ret, "failed to load firmware: %s\n", ++ gphy_fw->fw_name); + + /* GPHY cores need the firmware code in a persistent and contiguous + * memory area with a 16 kB boundary aligned start address. +@@ -1936,9 +1934,9 @@ static int gswip_gphy_fw_load(struct gsw + dev_addr = ALIGN(dma_addr, XRX200_GPHY_FW_ALIGN); + memcpy(fw_addr, fw->data, fw->size); + } else { +- dev_err(dev, "failed to alloc firmware memory\n"); + release_firmware(fw); +- return -ENOMEM; ++ return dev_err_probe(dev, -ENOMEM, ++ "failed to alloc firmware memory\n"); + } + + release_firmware(fw); +@@ -1965,8 +1963,8 @@ static int gswip_gphy_fw_probe(struct gs + + gphy_fw->clk_gate = devm_clk_get(dev, gphyname); + if (IS_ERR(gphy_fw->clk_gate)) { +- dev_err(dev, "Failed to lookup gate clock\n"); +- return PTR_ERR(gphy_fw->clk_gate); ++ return dev_err_probe(dev, PTR_ERR(gphy_fw->clk_gate), ++ "Failed to lookup gate clock\n"); + } + + ret = of_property_read_u32(gphy_fw_np, "reg", &gphy_fw->fw_addr_offset); +@@ -1986,8 +1984,8 @@ static int gswip_gphy_fw_probe(struct gs + gphy_fw->fw_name = priv->gphy_fw_name_cfg->ge_firmware_name; + break; + default: +- dev_err(dev, "Unknown GPHY mode %d\n", gphy_mode); +- return -EINVAL; ++ return dev_err_probe(dev, -EINVAL, "Unknown GPHY mode %d\n", ++ gphy_mode); + } + + gphy_fw->reset = of_reset_control_array_get_exclusive(gphy_fw_np); +@@ -2038,8 +2036,9 @@ 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\n", version); +- return -ENOENT; ++ return dev_err_probe(dev, -ENOENT, ++ "unknown GSWIP version: 0x%x\n", ++ version); + } + } + +@@ -2047,10 +2046,9 @@ static int gswip_gphy_fw_list(struct gsw + if (match && match->data) + priv->gphy_fw_name_cfg = match->data; + +- if (!priv->gphy_fw_name_cfg) { +- 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\n"); + + priv->num_gphy_fw = of_get_available_child_count(gphy_fw_list_np); + if (!priv->num_gphy_fw) +@@ -2150,8 +2148,8 @@ static int gswip_probe(struct platform_d + return -EINVAL; + break; + default: +- dev_err(dev, "unknown GSWIP version: 0x%x\n", version); +- return -ENOENT; ++ return dev_err_probe(dev, -ENOENT, ++ "unknown GSWIP version: 0x%x\n", version); + } + + /* bring up the mdio bus */ +@@ -2159,10 +2157,9 @@ static int gswip_probe(struct platform_d + if (gphy_fw_np) { + err = gswip_gphy_fw_list(priv, gphy_fw_np, version); + of_node_put(gphy_fw_np); +- if (err) { +- dev_err(dev, "gphy fw probe failed\n"); +- return err; +- } ++ if (err) ++ return dev_err_probe(dev, err, ++ "gphy fw probe failed\n"); + } + + /* bring up the mdio bus */ +@@ -2170,20 +2167,20 @@ static int gswip_probe(struct platform_d + if (mdio_np) { + err = gswip_mdio(priv, mdio_np); + if (err) { +- dev_err(dev, "mdio probe failed\n"); ++ dev_err_probe(dev, err, "mdio probe failed\n"); + goto put_mdio_node; + } + } + + err = dsa_register_switch(priv->ds); + if (err) { +- dev_err(dev, "dsa switch register failed: %i\n", err); ++ dev_err_probe(dev, err, "dsa switch registration failed\n"); + 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\n", +- priv->hw_info->cpu_port); +- err = -EINVAL; ++ err = dev_err_probe(dev, -EINVAL, ++ "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/0735-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch b/target/linux/lantiq/patches-6.6/0735-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch deleted file mode 100644 index a653c85841..0000000000 --- a/target/linux/lantiq/patches-6.6/0735-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 54a2f7f2c134738bd3f4ea0a213138d169f2726e Mon Sep 17 00:00:00 2001 -From: Martin Schiller -Date: Fri, 10 May 2024 13:52:10 +0200 -Subject: [PATCH] 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 -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. - -Fixes: 74be4babe72f ("net: dsa: do not enable or disable non user ports") -Signed-off-by: Martin Schiller ---- - drivers/net/dsa/lantiq_gswip.c | 24 ++++++++---------------- - 1 file changed, 8 insertions(+), 16 deletions(-) - ---- a/drivers/net/dsa/lantiq_gswip.c -+++ b/drivers/net/dsa/lantiq_gswip.c -@@ -688,13 +688,18 @@ static int gswip_port_enable(struct dsa_ - struct gswip_priv *priv = ds->priv; - int err; - -- if (!dsa_is_user_port(ds, port)) -- return 0; -- - if (!dsa_is_cpu_port(ds, port)) { -+ u32 mdio_phy = 0; -+ - err = gswip_add_single_port_br(priv, port, true); - if (err) - return err; -+ -+ if (phydev) -+ mdio_phy = phydev->mdio.addr & GSWIP_MDIO_PHY_ADDR_MASK; -+ -+ gswip_mdio_mask(priv, GSWIP_MDIO_PHY_ADDR_MASK, mdio_phy, -+ GSWIP_MDIO_PHYp(port)); - } - - /* RMON Counter Enable for port */ -@@ -707,16 +712,6 @@ static int gswip_port_enable(struct dsa_ - gswip_switch_mask(priv, 0, GSWIP_SDMA_PCTRL_EN, - GSWIP_SDMA_PCTRLp(port)); - -- if (!dsa_is_cpu_port(ds, port)) { -- u32 mdio_phy = 0; -- -- if (phydev) -- mdio_phy = phydev->mdio.addr & GSWIP_MDIO_PHY_ADDR_MASK; -- -- gswip_mdio_mask(priv, GSWIP_MDIO_PHY_ADDR_MASK, mdio_phy, -- GSWIP_MDIO_PHYp(port)); -- } -- - return 0; - } - -@@ -724,9 +719,6 @@ static void gswip_port_disable(struct ds - { - struct gswip_priv *priv = ds->priv; - -- if (!dsa_is_user_port(ds, port)) -- return; -- - gswip_switch_mask(priv, GSWIP_FDMA_PCTRL_EN, 0, - GSWIP_FDMA_PCTRLp(port)); - gswip_switch_mask(priv, GSWIP_SDMA_PCTRL_EN, 0, diff --git a/target/linux/lantiq/patches-6.6/0735-v6.11-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 new file mode 100644 index 0000000000..b7de069c5f --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0735-v6.11-net-dsa-lantiq_gswip-Don-t-manually-call-gswip_port_.patch @@ -0,0 +1,29 @@ +From f5ebf9ab60940b00c36dfe64add41c80f3daff6a Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +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 +Acked-by: Hauke Mehrtens +Reviewed-by: Vladimir Oltean +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-6-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + drivers/net/dsa/lantiq_gswip.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/drivers/net/dsa/lantiq_gswip.c ++++ b/drivers/net/dsa/lantiq_gswip.c +@@ -891,8 +891,6 @@ static int gswip_setup(struct dsa_switch + + ds->mtu_enforcement_ingress = true; + +- gswip_port_enable(ds, cpu_port, NULL); +- + ds->configure_vlan_while_not_filtering = false; + + return 0; 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/0736-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch deleted file mode 100644 index fd19982264..0000000000 --- a/target/linux/lantiq/patches-6.6/0736-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8ab55ac9678ca1f50f786c84484599dd675c5a9f Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Wed, 18 May 2022 23:53:09 +0200 -Subject: [PATCH 736/768] 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 ---- - drivers/net/dsa/lantiq_gswip.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/drivers/net/dsa/lantiq_gswip.c -+++ b/drivers/net/dsa/lantiq_gswip.c -@@ -1457,12 +1457,11 @@ static int gswip_port_max_mtu(struct dsa - static int gswip_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) - { - struct gswip_priv *priv = ds->priv; -- int cpu_port = priv->hw_info->cpu_port; - - /* CPU port always has maximum mtu of user ports, so use it to set - * switch frame size, including 8 byte special header. - */ -- if (port == cpu_port) { -+ if (dsa_is_cpu_port(ds, port)) { - new_mtu += 8; - gswip_switch_w(priv, VLAN_ETH_HLEN + new_mtu + ETH_FCS_LEN, - GSWIP_MAC_FLEN); diff --git a/target/linux/lantiq/patches-6.6/0736-v6.11-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 new file mode 100644 index 0000000000..0baca3d7c2 --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0736-v6.11-net-dsa-lantiq_gswip-do-also-enable-or-disable-cpu-p.patch @@ -0,0 +1,73 @@ +From 86b9ea6412af41914ef6549f85a849c3b987f4f3 Mon Sep 17 00:00:00 2001 +From: Martin Schiller +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 +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. The operation reordering done here is safe. + +Signed-off-by: Martin Schiller +Acked-by: Hauke Mehrtens +Reviewed-by: Vladimir Oltean +Link: https://lore.kernel.org/r/20240611135434.3180973-7-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + drivers/net/dsa/lantiq_gswip.c | 24 ++++++++---------------- + 1 file changed, 8 insertions(+), 16 deletions(-) + +--- a/drivers/net/dsa/lantiq_gswip.c ++++ b/drivers/net/dsa/lantiq_gswip.c +@@ -688,13 +688,18 @@ static int gswip_port_enable(struct dsa_ + struct gswip_priv *priv = ds->priv; + int err; + +- if (!dsa_is_user_port(ds, port)) +- return 0; +- + if (!dsa_is_cpu_port(ds, port)) { ++ u32 mdio_phy = 0; ++ + err = gswip_add_single_port_br(priv, port, true); + if (err) + return err; ++ ++ if (phydev) ++ mdio_phy = phydev->mdio.addr & GSWIP_MDIO_PHY_ADDR_MASK; ++ ++ gswip_mdio_mask(priv, GSWIP_MDIO_PHY_ADDR_MASK, mdio_phy, ++ GSWIP_MDIO_PHYp(port)); + } + + /* RMON Counter Enable for port */ +@@ -707,16 +712,6 @@ static int gswip_port_enable(struct dsa_ + gswip_switch_mask(priv, 0, GSWIP_SDMA_PCTRL_EN, + GSWIP_SDMA_PCTRLp(port)); + +- if (!dsa_is_cpu_port(ds, port)) { +- u32 mdio_phy = 0; +- +- if (phydev) +- mdio_phy = phydev->mdio.addr & GSWIP_MDIO_PHY_ADDR_MASK; +- +- gswip_mdio_mask(priv, GSWIP_MDIO_PHY_ADDR_MASK, mdio_phy, +- GSWIP_MDIO_PHYp(port)); +- } +- + return 0; + } + +@@ -724,9 +719,6 @@ static void gswip_port_disable(struct ds + { + struct gswip_priv *priv = ds->priv; + +- if (!dsa_is_user_port(ds, port)) +- return; +- + gswip_switch_mask(priv, GSWIP_FDMA_PCTRL_EN, 0, + GSWIP_FDMA_PCTRLp(port)); + gswip_switch_mask(priv, GSWIP_SDMA_PCTRL_EN, 0, 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/0737-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch deleted file mode 100644 index 74e52d1d18..0000000000 --- a/target/linux/lantiq/patches-6.6/0737-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch +++ /dev/null @@ -1,24 +0,0 @@ -From ef98b183d8fc7187a2efcc21c8f54f3cf061d556 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Tue, 17 May 2022 22:39:58 +0200 -Subject: [PATCH 737/768] 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 ---- - 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 -@@ -1406,7 +1406,7 @@ static int gswip_port_fdb_dump(struct ds - { - struct gswip_priv *priv = ds->priv; - struct gswip_pce_table_entry mac_bridge = {0,}; -- unsigned char addr[6]; -+ unsigned char addr[ETH_ALEN]; - int i; - int err; - diff --git a/target/linux/lantiq/patches-6.6/0737-v6.11-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 new file mode 100644 index 0000000000..493aea4295 --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0737-v6.11-net-dsa-lantiq_gswip-Use-dsa_is_cpu_port-in-gswip_po.patch @@ -0,0 +1,35 @@ +From 7168ec1b06691295db6b335e5f5f6c86c7061213 Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +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 +Reviewed-by: Vladimir Oltean +Acked-by: Hauke Mehrtens +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-8-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + drivers/net/dsa/lantiq_gswip.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/drivers/net/dsa/lantiq_gswip.c ++++ b/drivers/net/dsa/lantiq_gswip.c +@@ -1457,12 +1457,11 @@ static int gswip_port_max_mtu(struct dsa + static int gswip_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) + { + struct gswip_priv *priv = ds->priv; +- int cpu_port = priv->hw_info->cpu_port; + + /* CPU port always has maximum mtu of user ports, so use it to set + * switch frame size, including 8 byte special header. + */ +- if (port == cpu_port) { ++ if (dsa_is_cpu_port(ds, port)) { + new_mtu += 8; + gswip_switch_w(priv, VLAN_ETH_HLEN + new_mtu + ETH_FCS_LEN, + GSWIP_MAC_FLEN); 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 -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 ---- - 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/0738-v6.11-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 new file mode 100644 index 0000000000..773d43ee19 --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0738-v6.11-net-dsa-lantiq_gswip-Change-literal-6-to-ETH_ALEN.patch @@ -0,0 +1,29 @@ +From c927b6e47b5cc7324217bf5fe7e6ccd0633971a0 Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +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 +Reviewed-by: Vladimir Oltean +Acked-by: Hauke Mehrtens +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-9-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + 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 +@@ -1406,7 +1406,7 @@ static int gswip_port_fdb_dump(struct ds + { + struct gswip_priv *priv = ds->priv; + struct gswip_pce_table_entry mac_bridge = {0,}; +- unsigned char addr[6]; ++ unsigned char addr[ETH_ALEN]; + int i; + int err; + 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 -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 ---- - 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 +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 +Signed-off-by: Martin Schiller +Acked-by: Hauke Mehrtens +Reviewed-by: Vladimir Oltean +Link: https://lore.kernel.org/r/20240611135434.3180973-10-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + 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 -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 ---- - 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 +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 +Signed-off-by: Martin Schiller +Reviewed-by: Vladimir Oltean +Link: https://lore.kernel.org/r/20240611135434.3180973-11-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + 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-net-dsa-lantiq_gswip-Fix-comments-in-gswip_port_vlan.patch deleted file mode 100644 index 679dd53c47..0000000000 --- a/target/linux/lantiq/patches-6.6/0741-net-dsa-lantiq_gswip-Fix-comments-in-gswip_port_vlan.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 45a0371568b1f050d787564875653f41a1f6fb98 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Fri, 14 Oct 2022 14:06:40 +0200 -Subject: [PATCH 741/768] net: dsa: lantiq_gswip: Fix comments in - gswip_port_vlan_filtering() - -Update the comments in gswip_port_vlan_filtering() so it's clear that -there are two separate cases, one for "tag based VLAN" and another one -for "port based VLAN". - -Suggested-by: Martin Schiller -Signed-off-by: Martin Blumenstingl ---- - 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 - } - - if (vlan_filtering) { -- /* Use port based VLAN tag */ -+ /* Use tag based VLAN */ - 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 - gswip_switch_mask(priv, GSWIP_PCE_PCTRL_0_TVM, 0, - GSWIP_PCE_PCTRL_0p(port)); - } else { -- /* Use port based VLAN tag */ -+ /* Use port based VLAN */ - gswip_switch_mask(priv, - GSWIP_PCE_VCTRL_UVR | GSWIP_PCE_VCTRL_VIMR | - GSWIP_PCE_VCTRL_VEMR, diff --git a/target/linux/lantiq/patches-6.6/0741-v6.11-net-dsa-lantiq_gswip-Update-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 new file mode 100644 index 0000000000..16702c9356 --- /dev/null +++ b/target/linux/lantiq/patches-6.6/0741-v6.11-net-dsa-lantiq_gswip-Update-comments-in-gswip_port_vlan.patch @@ -0,0 +1,41 @@ +From e19fbe3996aae35a467ebad35ff2b8d84975a65c Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +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 +there are two separate cases, one for "tag based VLAN" and another one +for "port based VLAN". + +Suggested-by: Martin Schiller +Signed-off-by: Martin Blumenstingl +Acked-by: Hauke Mehrtens +Reviewed-by: Vladimir Oltean +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-12-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + 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 +@@ -773,7 +773,7 @@ static int gswip_port_vlan_filtering(str + } + + if (vlan_filtering) { +- /* Use port based VLAN tag */ ++ /* Use tag based VLAN */ + gswip_switch_mask(priv, + GSWIP_PCE_VCTRL_VSR, + GSWIP_PCE_VCTRL_UVR | GSWIP_PCE_VCTRL_VIMR | +@@ -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 { +- /* Use port based VLAN tag */ ++ /* Use port based VLAN */ + gswip_switch_mask(priv, + GSWIP_PCE_VCTRL_UVR | GSWIP_PCE_VCTRL_VIMR | + GSWIP_PCE_VCTRL_VEMR, 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 -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 ---- - 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 +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 +Acked-by: Hauke Mehrtens +Reviewed-by: Vladimir Oltean +Signed-off-by: Martin Schiller +Link: https://lore.kernel.org/r/20240611135434.3180973-13-ms@dev.tdt.de +Signed-off-by: Jakub Kicinski +--- + 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 -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 ---- - 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; - } -