 f2f42a54e8
			
		
	
	f2f42a54e8
	
	
	
		
			
			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)
 | |
|  {
 |