forked from Openwrt/openwrt
30d2fcffeb
The prerequisite DSA changes for the nice RTL8366RB improvements are already backported so bring back these changes as well. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
119 lines
3.7 KiB
Diff
119 lines
3.7 KiB
Diff
From 96cf10a8e7297065459473c081a6fb6432a22312 Mon Sep 17 00:00:00 2001
|
|
From: Linus Walleij <linus.walleij@linaro.org>
|
|
Date: Sun, 26 Sep 2021 00:59:25 +0200
|
|
Subject: [PATCH 02/11] net: dsa: rtl8366: Drop custom VLAN set-up
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
This hacky default VLAN setup was done in order to direct
|
|
packets to the right ports and provide port isolation, both
|
|
which we now support properly using custom tags and proper
|
|
bridge port isolation.
|
|
|
|
We can drop the custom VLAN code and leave all VLAN handling
|
|
alone, as users expect things to be. We can also drop
|
|
ds->configure_vlan_while_not_filtering = false; and let
|
|
the core deal with any VLANs it wants.
|
|
|
|
Cc: Mauri Sandberg <sandberg@mailfence.com>
|
|
Cc: DENG Qingfang <dqfext@gmail.com>
|
|
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
|
Reviewed-by: Alvin Šipraga <alsi@bang-olufsen.dk>
|
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/dsa/realtek-smi-core.h | 1 -
|
|
drivers/net/dsa/rtl8366.c | 48 ------------------------------
|
|
drivers/net/dsa/rtl8366rb.c | 4 +--
|
|
3 files changed, 1 insertion(+), 52 deletions(-)
|
|
|
|
--- a/drivers/net/dsa/realtek-smi-core.h
|
|
+++ b/drivers/net/dsa/realtek-smi-core.h
|
|
@@ -129,7 +129,6 @@ int rtl8366_set_pvid(struct realtek_smi
|
|
int rtl8366_enable_vlan4k(struct realtek_smi *smi, bool enable);
|
|
int rtl8366_enable_vlan(struct realtek_smi *smi, bool enable);
|
|
int rtl8366_reset_vlan(struct realtek_smi *smi);
|
|
-int rtl8366_init_vlan(struct realtek_smi *smi);
|
|
int rtl8366_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
|
|
struct netlink_ext_ack *extack);
|
|
int rtl8366_vlan_add(struct dsa_switch *ds, int port,
|
|
--- a/drivers/net/dsa/rtl8366.c
|
|
+++ b/drivers/net/dsa/rtl8366.c
|
|
@@ -292,54 +292,6 @@ int rtl8366_reset_vlan(struct realtek_sm
|
|
}
|
|
EXPORT_SYMBOL_GPL(rtl8366_reset_vlan);
|
|
|
|
-int rtl8366_init_vlan(struct realtek_smi *smi)
|
|
-{
|
|
- int port;
|
|
- int ret;
|
|
-
|
|
- ret = rtl8366_reset_vlan(smi);
|
|
- if (ret)
|
|
- return ret;
|
|
-
|
|
- /* Loop over the available ports, for each port, associate
|
|
- * it with the VLAN (port+1)
|
|
- */
|
|
- for (port = 0; port < smi->num_ports; port++) {
|
|
- u32 mask;
|
|
-
|
|
- if (port == smi->cpu_port)
|
|
- /* For the CPU port, make all ports members of this
|
|
- * VLAN.
|
|
- */
|
|
- mask = GENMASK((int)smi->num_ports - 1, 0);
|
|
- else
|
|
- /* For all other ports, enable itself plus the
|
|
- * CPU port.
|
|
- */
|
|
- mask = BIT(port) | BIT(smi->cpu_port);
|
|
-
|
|
- /* For each port, set the port as member of VLAN (port+1)
|
|
- * and untagged, except for the CPU port: the CPU port (5) is
|
|
- * member of VLAN 6 and so are ALL the other ports as well.
|
|
- * Use filter 0 (no filter).
|
|
- */
|
|
- dev_info(smi->dev, "VLAN%d port mask for port %d, %08x\n",
|
|
- (port + 1), port, mask);
|
|
- ret = rtl8366_set_vlan(smi, (port + 1), mask, mask, 0);
|
|
- if (ret)
|
|
- return ret;
|
|
-
|
|
- dev_info(smi->dev, "VLAN%d port %d, PVID set to %d\n",
|
|
- (port + 1), port, (port + 1));
|
|
- ret = rtl8366_set_pvid(smi, port, (port + 1));
|
|
- if (ret)
|
|
- return ret;
|
|
- }
|
|
-
|
|
- return rtl8366_enable_vlan(smi, true);
|
|
-}
|
|
-EXPORT_SYMBOL_GPL(rtl8366_init_vlan);
|
|
-
|
|
int rtl8366_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
|
|
struct netlink_ext_ack *extack)
|
|
{
|
|
--- a/drivers/net/dsa/rtl8366rb.c
|
|
+++ b/drivers/net/dsa/rtl8366rb.c
|
|
@@ -985,7 +985,7 @@ static int rtl8366rb_setup(struct dsa_sw
|
|
return ret;
|
|
}
|
|
|
|
- ret = rtl8366_init_vlan(smi);
|
|
+ ret = rtl8366_reset_vlan(smi);
|
|
if (ret)
|
|
return ret;
|
|
|
|
@@ -999,8 +999,6 @@ static int rtl8366rb_setup(struct dsa_sw
|
|
return -ENODEV;
|
|
}
|
|
|
|
- ds->configure_vlan_while_not_filtering = false;
|
|
-
|
|
return 0;
|
|
}
|
|
|