The qca8k patch series brings the numbering to 799. This patch renames 7xx patches to create space for more backports to be added. Signed-off-by: Matthew Hagan <mnhagan88@gmail.com> [rename 729->719] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 64a81b24487f0d2fba0f033029eec2abc7d82cee Mon Sep 17 00:00:00 2001
 | 
						|
From: Florian Fainelli <f.fainelli@gmail.com>
 | 
						|
Date: Mon, 21 Jun 2021 15:10:55 -0700
 | 
						|
Subject: [PATCH] net: dsa: b53: Create default VLAN entry explicitly
 | 
						|
 | 
						|
In case CONFIG_VLAN_8021Q is not set, there will be no call down to the
 | 
						|
b53 driver to ensure that the default PVID VLAN entry will be configured
 | 
						|
with the appropriate untagged attribute towards the CPU port. We were
 | 
						|
implicitly relying on dsa_slave_vlan_rx_add_vid() to do that for us,
 | 
						|
instead make it explicit.
 | 
						|
 | 
						|
Reported-by: Vladimir Oltean <olteanv@gmail.com>
 | 
						|
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
						|
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
 | 
						|
Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
						|
---
 | 
						|
 drivers/net/dsa/b53/b53_common.c | 27 +++++++++++++++++++--------
 | 
						|
 1 file changed, 19 insertions(+), 8 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/dsa/b53/b53_common.c
 | 
						|
+++ b/drivers/net/dsa/b53/b53_common.c
 | 
						|
@@ -693,6 +693,13 @@ static u16 b53_default_pvid(struct b53_d
 | 
						|
 		return 0;
 | 
						|
 }
 | 
						|
 
 | 
						|
+static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port)
 | 
						|
+{
 | 
						|
+	struct b53_device *dev = ds->priv;
 | 
						|
+
 | 
						|
+	return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port);
 | 
						|
+}
 | 
						|
+
 | 
						|
 int b53_configure_vlan(struct dsa_switch *ds)
 | 
						|
 {
 | 
						|
 	struct b53_device *dev = ds->priv;
 | 
						|
@@ -713,9 +720,20 @@ int b53_configure_vlan(struct dsa_switch
 | 
						|
 
 | 
						|
 	b53_enable_vlan(dev, -1, dev->vlan_enabled, ds->vlan_filtering);
 | 
						|
 
 | 
						|
-	b53_for_each_port(dev, i)
 | 
						|
+	/* Create an untagged VLAN entry for the default PVID in case
 | 
						|
+	 * CONFIG_VLAN_8021Q is disabled and there are no calls to
 | 
						|
+	 * dsa_slave_vlan_rx_add_vid() to create the default VLAN
 | 
						|
+	 * entry. Do this only when the tagging protocol is not
 | 
						|
+	 * DSA_TAG_PROTO_NONE
 | 
						|
+	 */
 | 
						|
+	b53_for_each_port(dev, i) {
 | 
						|
+		v = &dev->vlans[def_vid];
 | 
						|
+		v->members |= BIT(i);
 | 
						|
+		if (!b53_vlan_port_needs_forced_tagged(ds, i))
 | 
						|
+			v->untag = v->members;
 | 
						|
 		b53_write16(dev, B53_VLAN_PAGE,
 | 
						|
 			    B53_VLAN_PORT_DEF_TAG(i), def_vid);
 | 
						|
+	}
 | 
						|
 
 | 
						|
 	/* Upon initial call we have not set-up any VLANs, but upon
 | 
						|
 	 * system resume, we need to restore all VLAN entries.
 | 
						|
@@ -1429,13 +1447,6 @@ int b53_vlan_prepare(struct dsa_switch *
 | 
						|
 }
 | 
						|
 EXPORT_SYMBOL(b53_vlan_prepare);
 | 
						|
  
 | 
						|
-static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port)
 | 
						|
-{
 | 
						|
-	struct b53_device *dev = ds->priv;
 | 
						|
-
 | 
						|
-	return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port);
 | 
						|
-}
 | 
						|
-
 | 
						|
 void b53_vlan_add(struct dsa_switch *ds, int port,
 | 
						|
 		  const struct switchdev_obj_port_vlan *vlan)
 | 
						|
 {
 |