c2c741ccce
Initial backport of at803x PHY driver cleanup. This is in preparation for split and addition of new PHY Family based on at803x needed for ipq807x and other IPQ Series SoC. Other affected patch are automatically refreshed with make target/linux/refresh Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
70 lines
1.9 KiB
Diff
70 lines
1.9 KiB
Diff
From 6a3b8c573b5a152a6aa7a0b54c5e18b84c6ba6f5 Mon Sep 17 00:00:00 2001
|
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
|
Date: Fri, 8 Dec 2023 15:51:49 +0100
|
|
Subject: [PATCH 02/13] net: phy: at803x: move disable WOL to specific at8031
|
|
probe
|
|
|
|
Move the WOL disable call to specific at8031 probe to make at803x_probe
|
|
more generic and drop extra check for PHY ID.
|
|
|
|
Keep the same previous behaviour by first calling at803x_probe and then
|
|
disabling WOL.
|
|
|
|
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 | 27 +++++++++++++++++----------
|
|
1 file changed, 17 insertions(+), 10 deletions(-)
|
|
|
|
--- a/drivers/net/phy/at803x.c
|
|
+++ b/drivers/net/phy/at803x.c
|
|
@@ -886,15 +886,6 @@ static int at803x_probe(struct phy_devic
|
|
priv->is_fiber = true;
|
|
break;
|
|
}
|
|
-
|
|
- /* Disable WoL in 1588 register which is enabled
|
|
- * by default
|
|
- */
|
|
- ret = phy_modify_mmd(phydev, MDIO_MMD_PCS,
|
|
- AT803X_PHY_MMD3_WOL_CTRL,
|
|
- AT803X_WOL_EN, 0);
|
|
- if (ret)
|
|
- return ret;
|
|
}
|
|
|
|
return 0;
|
|
@@ -1591,6 +1582,22 @@ static int at803x_cable_test_start(struc
|
|
return 0;
|
|
}
|
|
|
|
+static int at8031_probe(struct phy_device *phydev)
|
|
+{
|
|
+ int ret;
|
|
+
|
|
+ ret = at803x_probe(phydev);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
+ /* Disable WoL in 1588 register which is enabled
|
|
+ * by default
|
|
+ */
|
|
+ return phy_modify_mmd(phydev, MDIO_MMD_PCS,
|
|
+ AT803X_PHY_MMD3_WOL_CTRL,
|
|
+ AT803X_WOL_EN, 0);
|
|
+}
|
|
+
|
|
static int qca83xx_config_init(struct phy_device *phydev)
|
|
{
|
|
u8 switch_revision;
|
|
@@ -2092,7 +2099,7 @@ static struct phy_driver at803x_driver[]
|
|
PHY_ID_MATCH_EXACT(ATH8031_PHY_ID),
|
|
.name = "Qualcomm Atheros AR8031/AR8033",
|
|
.flags = PHY_POLL_CABLE_TEST,
|
|
- .probe = at803x_probe,
|
|
+ .probe = at8031_probe,
|
|
.config_init = at803x_config_init,
|
|
.config_aneg = at803x_config_aneg,
|
|
.soft_reset = genphy_soft_reset,
|