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>
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 2b0ee6768f3ac09072e5fd60b36580924e1cfa1c Mon Sep 17 00:00:00 2001
 | 
						|
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
 | 
						|
Date: Mon, 11 Apr 2022 10:46:32 +0100
 | 
						|
Subject: [PATCH 08/13] net: dsa: mt7530: move autoneg handling to PCS
 | 
						|
 validation
 | 
						|
MIME-Version: 1.0
 | 
						|
Content-Type: text/plain; charset=UTF-8
 | 
						|
Content-Transfer-Encoding: 8bit
 | 
						|
 | 
						|
Move the autoneg bit handling to the PCS validation, which allows us to
 | 
						|
get rid of mt753x_phylink_validate() and rely on the default
 | 
						|
phylink_generic_validate() implementation for the MAC side.
 | 
						|
 | 
						|
Tested-by: Marek Behún <kabel@kernel.org>
 | 
						|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
 | 
						|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 | 
						|
---
 | 
						|
 drivers/net/dsa/mt7530.c | 28 ++++++++++------------------
 | 
						|
 1 file changed, 10 insertions(+), 18 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/dsa/mt7530.c
 | 
						|
+++ b/drivers/net/dsa/mt7530.c
 | 
						|
@@ -2921,25 +2921,16 @@ static void mt753x_phylink_get_caps(stru
 | 
						|
 	priv->info->mac_port_get_caps(ds, port, config);
 | 
						|
 }
 | 
						|
 
 | 
						|
-static void
 | 
						|
-mt753x_phylink_validate(struct dsa_switch *ds, int port,
 | 
						|
-			unsigned long *supported,
 | 
						|
-			struct phylink_link_state *state)
 | 
						|
-{
 | 
						|
-	__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
 | 
						|
-	u32 caps;
 | 
						|
-
 | 
						|
-	caps = dsa_to_port(ds, port)->pl_config.mac_capabilities;
 | 
						|
-
 | 
						|
-	phylink_set_port_modes(mask);
 | 
						|
-	phylink_get_linkmodes(mask, state->interface, caps);
 | 
						|
+static int mt753x_pcs_validate(struct phylink_pcs *pcs,
 | 
						|
+			       unsigned long *supported,
 | 
						|
+			       const struct phylink_link_state *state)
 | 
						|
+{
 | 
						|
+	/* Autonegotiation is not supported in TRGMII nor 802.3z modes */
 | 
						|
+	if (state->interface == PHY_INTERFACE_MODE_TRGMII ||
 | 
						|
+	    phy_interface_mode_is_8023z(state->interface))
 | 
						|
+		phylink_clear(supported, Autoneg);
 | 
						|
 
 | 
						|
-	if (state->interface != PHY_INTERFACE_MODE_TRGMII &&
 | 
						|
-	    !phy_interface_mode_is_8023z(state->interface))
 | 
						|
-		phylink_set(mask, Autoneg);
 | 
						|
-
 | 
						|
-	linkmode_and(supported, supported, mask);
 | 
						|
-	linkmode_and(state->advertising, state->advertising, mask);
 | 
						|
+	return 0;
 | 
						|
 }
 | 
						|
 
 | 
						|
 static void mt7530_pcs_get_state(struct phylink_pcs *pcs,
 | 
						|
@@ -3041,12 +3032,14 @@ static void mt7530_pcs_an_restart(struct
 | 
						|
 }
 | 
						|
 
 | 
						|
 static const struct phylink_pcs_ops mt7530_pcs_ops = {
 | 
						|
+	.pcs_validate = mt753x_pcs_validate,
 | 
						|
 	.pcs_get_state = mt7530_pcs_get_state,
 | 
						|
 	.pcs_config = mt753x_pcs_config,
 | 
						|
 	.pcs_an_restart = mt7530_pcs_an_restart,
 | 
						|
 };
 | 
						|
 
 | 
						|
 static const struct phylink_pcs_ops mt7531_pcs_ops = {
 | 
						|
+	.pcs_validate = mt753x_pcs_validate,
 | 
						|
 	.pcs_get_state = mt7531_pcs_get_state,
 | 
						|
 	.pcs_config = mt753x_pcs_config,
 | 
						|
 	.pcs_an_restart = mt7531_pcs_an_restart,
 | 
						|
@@ -3138,7 +3131,6 @@ static const struct dsa_switch_ops mt753
 | 
						|
 	.port_mirror_add	= mt753x_port_mirror_add,
 | 
						|
 	.port_mirror_del	= mt753x_port_mirror_del,
 | 
						|
 	.phylink_get_caps	= mt753x_phylink_get_caps,
 | 
						|
-	.phylink_validate	= mt753x_phylink_validate,
 | 
						|
 	.phylink_mac_select_pcs	= mt753x_phylink_mac_select_pcs,
 | 
						|
 	.phylink_mac_config	= mt753x_phylink_mac_config,
 | 
						|
 	.phylink_mac_link_down	= mt753x_phylink_mac_link_down,
 |