Re: [PATCH net 1/1] net: phy: marvell: add link status check before enabling phy loopback
From: Andrew Lunn <andrew@lunn.ch>
Date: 2022-08-25 13:27:10
Also in:
lkml, stable
From: Andrew Lunn <andrew@lunn.ch>
Date: 2022-08-25 13:27:10
Also in:
lkml, stable
@@ -2015,14 +2016,23 @@ static int m88e1510_loopback(struct phy_device *phydev, bool enable) if (err < 0) return err; - /* FIXME: Based on trial and error test, it seem 1G need to have - * delay between soft reset and loopback enablement. - */ - if (phydev->speed == SPEED_1000) - msleep(1000); + if (phydev->speed == SPEED_1000) { + err = phy_read_poll_timeout(phydev, MII_BMSR, val, val & BMSR_LSTATUS, + PHY_LOOP_BACK_SLEEP, + PHY_LOOP_BACK_TIMEOUT, true);
Is this link with itself? Have you tested this with the cable unplugged?
+ if (err) + return err;
I'm just trying to ensure we don't end up here with -ETIMEDOUT.
+#define PHY_LOOP_BACK_SLEEP 1000000 +#define PHY_LOOP_BACK_TIMEOUT 8000000
The kernel seems to be pretty consistent in having loopback as one word. Andrew