 ec8c837eab
			
		
	
	ec8c837eab
	
	
	
		
			
			Manually rebased: Removed upstreamed: backport-5.15/743-v6.3-0005-net-dsa-b53-mmap-fix-device-tree-support.patch[1] backport-5.15/743-v6.3-0006-net-dsa-tag_brcm-legacy-fix-daisy-chained-switches.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.105&id=9bbb3d3f218f1cf51f57a43cf8fd63b05be1b821 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.105&id=48f52431af9980582b6faa32ff8b581edb10486c Build system: x86_64 Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Signed-off-by: John Audia <therealgraysky@proton.me>
		
			
				
	
	
		
			118 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From ad2606f6fafae3a7d41c4f2af5554c8f6adecbc7 Mon Sep 17 00:00:00 2001
 | |
| From: Frank Wunderlich <frank-w@public-files.de>
 | |
| Date: Fri, 10 Jun 2022 19:05:39 +0200
 | |
| Subject: [PATCH 13/13] net: dsa: mt7530: get cpu-port via dp->cpu_dp instead
 | |
|  of constant
 | |
| 
 | |
| Replace last occurences of hardcoded cpu-port by cpu_dp member of
 | |
| dsa_port struct.
 | |
| 
 | |
| Now the constant can be dropped.
 | |
| 
 | |
| Suggested-by: Vladimir Oltean <olteanv@gmail.com>
 | |
| Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
 | |
| Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
 | |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
 | |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 | |
| ---
 | |
|  drivers/net/dsa/mt7530.c | 27 ++++++++++++++++++++-------
 | |
|  drivers/net/dsa/mt7530.h |  1 -
 | |
|  2 files changed, 20 insertions(+), 8 deletions(-)
 | |
| 
 | |
| --- a/drivers/net/dsa/mt7530.c
 | |
| +++ b/drivers/net/dsa/mt7530.c
 | |
| @@ -1040,6 +1040,7 @@ static int
 | |
|  mt7530_port_enable(struct dsa_switch *ds, int port,
 | |
|  		   struct phy_device *phy)
 | |
|  {
 | |
| +	struct dsa_port *dp = dsa_to_port(ds, port);
 | |
|  	struct mt7530_priv *priv = ds->priv;
 | |
|  
 | |
|  	mutex_lock(&priv->reg_mutex);
 | |
| @@ -1048,7 +1049,11 @@ mt7530_port_enable(struct dsa_switch *ds
 | |
|  	 * restore the port matrix if the port is the member of a certain
 | |
|  	 * bridge.
 | |
|  	 */
 | |
| -	priv->ports[port].pm |= PCR_MATRIX(BIT(MT7530_CPU_PORT));
 | |
| +	if (dsa_port_is_user(dp)) {
 | |
| +		struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +
 | |
| +		priv->ports[port].pm |= PCR_MATRIX(BIT(cpu_dp->index));
 | |
| +	}
 | |
|  	priv->ports[port].enable = true;
 | |
|  	mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
 | |
|  		   priv->ports[port].pm);
 | |
| @@ -1196,7 +1201,8 @@ mt7530_port_bridge_join(struct dsa_switc
 | |
|  			struct net_device *bridge)
 | |
|  {
 | |
|  	struct dsa_port *dp = dsa_to_port(ds, port), *other_dp;
 | |
| -	u32 port_bitmap = BIT(MT7530_CPU_PORT);
 | |
| +	struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +	u32 port_bitmap = BIT(cpu_dp->index);
 | |
|  	struct mt7530_priv *priv = ds->priv;
 | |
|  
 | |
|  	mutex_lock(&priv->reg_mutex);
 | |
| @@ -1273,9 +1279,12 @@ mt7530_port_set_vlan_unaware(struct dsa_
 | |
|  	 * the CPU port get out of VLAN filtering mode.
 | |
|  	 */
 | |
|  	if (all_user_ports_removed) {
 | |
| -		mt7530_write(priv, MT7530_PCR_P(MT7530_CPU_PORT),
 | |
| +		struct dsa_port *dp = dsa_to_port(ds, port);
 | |
| +		struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +
 | |
| +		mt7530_write(priv, MT7530_PCR_P(cpu_dp->index),
 | |
|  			     PCR_MATRIX(dsa_user_ports(priv->ds)));
 | |
| -		mt7530_write(priv, MT7530_PVC_P(MT7530_CPU_PORT), PORT_SPEC_TAG
 | |
| +		mt7530_write(priv, MT7530_PVC_P(cpu_dp->index), PORT_SPEC_TAG
 | |
|  			     | PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT));
 | |
|  	}
 | |
|  }
 | |
| @@ -1325,6 +1334,7 @@ mt7530_port_bridge_leave(struct dsa_swit
 | |
|  			 struct net_device *bridge)
 | |
|  {
 | |
|  	struct dsa_port *dp = dsa_to_port(ds, port), *other_dp;
 | |
| +	struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
|  	struct mt7530_priv *priv = ds->priv;
 | |
|  
 | |
|  	mutex_lock(&priv->reg_mutex);
 | |
| @@ -1353,8 +1363,8 @@ mt7530_port_bridge_leave(struct dsa_swit
 | |
|  	 */
 | |
|  	if (priv->ports[port].enable)
 | |
|  		mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
 | |
| -			   PCR_MATRIX(BIT(MT7530_CPU_PORT)));
 | |
| -	priv->ports[port].pm = PCR_MATRIX(BIT(MT7530_CPU_PORT));
 | |
| +			   PCR_MATRIX(BIT(cpu_dp->index)));
 | |
| +	priv->ports[port].pm = PCR_MATRIX(BIT(cpu_dp->index));
 | |
|  
 | |
|  	/* When a port is removed from the bridge, the port would be set up
 | |
|  	 * back to the default as is at initial boot which is a VLAN-unaware
 | |
| @@ -1517,6 +1527,9 @@ static int
 | |
|  mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
 | |
|  			   struct netlink_ext_ack *extack)
 | |
|  {
 | |
| +	struct dsa_port *dp = dsa_to_port(ds, port);
 | |
| +	struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +
 | |
|  	if (vlan_filtering) {
 | |
|  		/* The port is being kept as VLAN-unaware port when bridge is
 | |
|  		 * set up with vlan_filtering not being set, Otherwise, the
 | |
| @@ -1524,7 +1537,7 @@ mt7530_port_vlan_filtering(struct dsa_sw
 | |
|  		 * for becoming a VLAN-aware port.
 | |
|  		 */
 | |
|  		mt7530_port_set_vlan_aware(ds, port);
 | |
| -		mt7530_port_set_vlan_aware(ds, MT7530_CPU_PORT);
 | |
| +		mt7530_port_set_vlan_aware(ds, cpu_dp->index);
 | |
|  	} else {
 | |
|  		mt7530_port_set_vlan_unaware(ds, port);
 | |
|  	}
 | |
| --- a/drivers/net/dsa/mt7530.h
 | |
| +++ b/drivers/net/dsa/mt7530.h
 | |
| @@ -8,7 +8,6 @@
 | |
|  
 | |
|  #define MT7530_NUM_PORTS		7
 | |
|  #define MT7530_NUM_PHYS			5
 | |
| -#define MT7530_CPU_PORT			6
 | |
|  #define MT7530_NUM_FDB_RECORDS		2048
 | |
|  #define MT7530_ALL_MEMBERS		0xff
 | |
|  
 |