Commit 1a0df6c9 authored by Gerhard Engleder's avatar Gerhard Engleder Committed by Paolo Abeni
Browse files

net: phy: marvell: Align set_loopback() implementation



Use genphy_loopback() to disable loopback like ksz9031_set_loopback().
This way disable loopback is implemented only once within
genphy_loopback() and the set_loopback() implementations look similar.

Also fix comment about msleep() in the out-of loopback case which is not
executed in the out-of loopback case.

Suggested-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarGerhard Engleder <gerhard@engleder-embedded.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20250312203010.47429-5-gerhard@engleder-embedded.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent fe4bf60f
Loading
Loading
Loading
Loading
+33 −39
Original line number Diff line number Diff line
@@ -2133,13 +2133,13 @@ static void marvell_get_stats_simple(struct phy_device *phydev,

static int m88e1510_loopback(struct phy_device *phydev, bool enable, int speed)
{
	u16 bmcr_ctl, mscr2_ctl = 0;
	int err;

	if (enable) {
		u16 bmcr_ctl, mscr2_ctl = 0;
	if (!enable)
		return genphy_loopback(phydev, enable, 0);

		if (speed == SPEED_10 || speed == SPEED_100 ||
		    speed == SPEED_1000)
	if (speed == SPEED_10 || speed == SPEED_100 || speed == SPEED_1000)
		phydev->speed = speed;
	else if (speed)
		return -EINVAL;
@@ -2170,19 +2170,13 @@ static int m88e1510_loopback(struct phy_device *phydev, bool enable, int speed)
			 BMCR_LOOPBACK);

	if (!err) {
			/* It takes some time for PHY device to switch
			 * into/out-of loopback mode.
		/*
		 * It takes some time for PHY device to switch into loopback
		 * mode.
		 */
		msleep(1000);
	}
	return err;
	} else {
		err = phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, 0);
		if (err < 0)
			return err;

		return phy_config_aneg(phydev);
	}
}

static int marvell_vct5_wait_complete(struct phy_device *phydev)