Commit 25d2ba94 authored by Christian Marangi's avatar Christian Marangi Committed by David S. Miller

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: default avatarChristian Marangi <ansuelsmth@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 900eef75
...@@ -844,26 +844,6 @@ static int at803x_probe(struct phy_device *phydev) ...@@ -844,26 +844,6 @@ static int at803x_probe(struct phy_device *phydev)
if (ret) if (ret)
return 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; return 0;
} }
...@@ -1584,6 +1564,9 @@ static int at8031_parse_dt(struct phy_device *phydev) ...@@ -1584,6 +1564,9 @@ static int at8031_parse_dt(struct phy_device *phydev)
static int at8031_probe(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; int ret;
ret = at803x_probe(phydev); ret = at803x_probe(phydev);
...@@ -1597,6 +1580,22 @@ static int at8031_probe(struct phy_device *phydev) ...@@ -1597,6 +1580,22 @@ static int at8031_probe(struct phy_device *phydev)
if (ret) if (ret)
return 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 /* Disable WoL in 1588 register which is enabled
* by default * by default
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment