mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 10:39:04 +00:00
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
|
||
|
*/
|