 42cb0f0f26
			
		
	
	42cb0f0f26
	
	
	
		
			
			Build system: x86_64 Build-tested: x86_64/ACEMAGICIAN T8PLUS, ramips/tplink_archer-a6-v3 Run-tested: x86_64/ACEMAGICIAN T8PLUS, ramips/tplink_archer-a6-v3 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
 | |
| @@ -1048,6 +1048,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);
 | |
| @@ -1056,7 +1057,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);
 | |
| @@ -1204,7 +1209,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);
 | |
| @@ -1281,9 +1287,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));
 | |
|  	}
 | |
|  }
 | |
| @@ -1333,6 +1342,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);
 | |
| @@ -1361,8 +1371,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
 | |
| @@ -1525,6 +1535,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
 | |
| @@ -1532,7 +1545,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
 | |
|  
 |