]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: phy: at803x: move specific at8031 probe mode check to dedicated probe
authorChristian Marangi <ansuelsmth@gmail.com>
Fri, 8 Dec 2023 14:51:53 +0000 (15:51 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Dec 2023 10:34:28 +0000 (10:34 +0000)
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

index 5694c2667b4d16a4f0ab3d423ff7592c1a075edb..6cb41af318188c4c89202d9c9dd1f17893f755eb 100644 (file)
@@ -844,26 +844,6 @@ static int at803x_probe(struct phy_device *phydev)
        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_device *phydev)
 
 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_device *phydev)
        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
         */