diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0500-net-phy-lan87xx-Allow-more-time-for-link-detect.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0500-net-phy-lan87xx-Allow-more-time-for-link-detect.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0500-net-phy-lan87xx-Allow-more-time-for-link-detect.patch b/target/linux/bcm27xx/patches-5.15/950-0500-net-phy-lan87xx-Allow-more-time-for-link-detect.patch new file mode 100644 index 0000000000..b0890c01cf --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0500-net-phy-lan87xx-Allow-more-time-for-link-detect.patch @@ -0,0 +1,38 @@ +From eb860f6a2dee9a4c94a7101c1d43194b95fdbc8d Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.com> +Date: Wed, 22 Sep 2021 15:38:13 +0100 +Subject: [PATCH] net: phy: lan87xx: Allow more time for link detect + +With EDPWRDOWN set in idle, it must be cleared before checking for +ENERGYON going high, indicating that a link is being established. +The existing code allows 640ms for ENERGYON to go high, but on +Raspberry Pis that appears not to be enough, causing link detection +to fail. + +Increase the polling timeout to 1500ms - with a polling interval of +10ms it shouldn't cause unnecessary delays. + +See: https://github.com/raspberrypi/linux/issues/4393 + +Signed-off-by: Phil Elwell <phil@raspberrypi.com> +--- + drivers/net/phy/smsc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/net/phy/smsc.c ++++ b/drivers/net/phy/smsc.c +@@ -228,12 +228,12 @@ static int lan87xx_read_status(struct ph + if (rc < 0) + return rc; + +- /* Wait max 640 ms to detect energy and the timeout is not ++ /* Wait max 1500 ms to detect energy and the timeout is not + * an actual error. + */ + read_poll_timeout(phy_read, rc, + rc & MII_LAN83C185_ENERGYON || rc < 0, +- 10000, 640000, true, phydev, ++ 10000, 1500000, true, phydev, + MII_LAN83C185_CTRL_STATUS); + if (rc < 0) + return rc; |