123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- From 25d2ba94005fac18fe68878cddff59a67e115554 Mon Sep 17 00:00:00 2001
- From: Christian Marangi <[email protected]>
- 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 <[email protected]>
- Reviewed-by: Andrew Lunn <[email protected]>
- Signed-off-by: David S. Miller <[email protected]>
- ---
- 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
- */
|