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

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
Loading
Loading
Loading
Loading
+19 −20
Original line number Diff line number Diff line
@@ -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
	 */