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>
This commit is contained in:
Christian Marangi 2023-12-08 15:51:53 +01:00 committed by David S. Miller
parent 900eef75cc
commit 25d2ba9400

View 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
*/