 30d2fcffeb
			
		
	
	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;
 | |
|  }
 | |
|  
 |