mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	Copy backport, hack, pending patch and config from 6.1 to 6.6. Signed-off-by: Weijie Gao <hackpascal@gmail.com>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 25d2ba94005fac18fe68878cddff59a67e115554 Mon Sep 17 00:00:00 2001
 | 
						|
From: Christian Marangi <ansuelsmth@gmail.com>
 | 
						|
Date: Fri, 8 Dec 2023 15:51:53 +0100
 | 
						|
Subject: [PATCH 06/13] net: phy: at803x: move specific at8031 probe mode check
 | 
						|
 to dedicated probe
 | 
						|
 | 
						|
Move specific at8031 probe mode check to dedicated probe to make
 | 
						|
at803x_probe more generic and keep code tidy.
 | 
						|
 | 
						|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 | 
						|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
 | 
						|
Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
						|
---
 | 
						|
 drivers/net/phy/at803x.c | 39 +++++++++++++++++++--------------------
 | 
						|
 1 file changed, 19 insertions(+), 20 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/phy/at803x.c
 | 
						|
+++ b/drivers/net/phy/at803x.c
 | 
						|
@@ -844,26 +844,6 @@ static int at803x_probe(struct phy_devic
 | 
						|
 	if (ret)
 | 
						|
 		return ret;
 | 
						|
 
 | 
						|
-	if (phydev->drv->phy_id == ATH8031_PHY_ID) {
 | 
						|
-		int ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG);
 | 
						|
-		int mode_cfg;
 | 
						|
-
 | 
						|
-		if (ccr < 0)
 | 
						|
-			return ccr;
 | 
						|
-		mode_cfg = ccr & AT803X_MODE_CFG_MASK;
 | 
						|
-
 | 
						|
-		switch (mode_cfg) {
 | 
						|
-		case AT803X_MODE_CFG_BX1000_RGMII_50OHM:
 | 
						|
-		case AT803X_MODE_CFG_BX1000_RGMII_75OHM:
 | 
						|
-			priv->is_1000basex = true;
 | 
						|
-			fallthrough;
 | 
						|
-		case AT803X_MODE_CFG_FX100_RGMII_50OHM:
 | 
						|
-		case AT803X_MODE_CFG_FX100_RGMII_75OHM:
 | 
						|
-			priv->is_fiber = true;
 | 
						|
-			break;
 | 
						|
-		}
 | 
						|
-	}
 | 
						|
-
 | 
						|
 	return 0;
 | 
						|
 }
 | 
						|
 
 | 
						|
@@ -1584,6 +1564,9 @@ static int at8031_parse_dt(struct phy_de
 | 
						|
 
 | 
						|
 static int at8031_probe(struct phy_device *phydev)
 | 
						|
 {
 | 
						|
+	struct at803x_priv *priv = phydev->priv;
 | 
						|
+	int mode_cfg;
 | 
						|
+	int ccr;
 | 
						|
 	int ret;
 | 
						|
 
 | 
						|
 	ret = at803x_probe(phydev);
 | 
						|
@@ -1597,6 +1580,22 @@ static int at8031_probe(struct phy_devic
 | 
						|
 	if (ret)
 | 
						|
 		return ret;
 | 
						|
 
 | 
						|
+	ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG);
 | 
						|
+	if (ccr < 0)
 | 
						|
+		return ccr;
 | 
						|
+	mode_cfg = ccr & AT803X_MODE_CFG_MASK;
 | 
						|
+
 | 
						|
+	switch (mode_cfg) {
 | 
						|
+	case AT803X_MODE_CFG_BX1000_RGMII_50OHM:
 | 
						|
+	case AT803X_MODE_CFG_BX1000_RGMII_75OHM:
 | 
						|
+		priv->is_1000basex = true;
 | 
						|
+		fallthrough;
 | 
						|
+	case AT803X_MODE_CFG_FX100_RGMII_50OHM:
 | 
						|
+	case AT803X_MODE_CFG_FX100_RGMII_75OHM:
 | 
						|
+		priv->is_fiber = true;
 | 
						|
+		break;
 | 
						|
+	}
 | 
						|
+
 | 
						|
 	/* Disable WoL in 1588 register which is enabled
 | 
						|
 	 * by default
 | 
						|
 	 */
 |