mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	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>
		
			
				
	
	
		
			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
 | 
						|
@@ -2963,25 +2963,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,
 | 
						|
@@ -3083,12 +3074,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,
 | 
						|
@@ -3180,7 +3173,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,
 |