forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
generic: backport pending Realtek PHY patches
These patches have been accepted, so we can move them from pending to backported. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
- Loading branch information
Showing
14 changed files
with
182 additions
and
261 deletions.
There are no files selected for viewing
52 changes: 52 additions & 0 deletions
52
...eric/backport-6.6/781-20-v6.13-net-phy-realtek-clear-1000Base-T-lpa-if-link-is-down.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
From 34d5a86ff7bbe225fba3ad91f9b4dc85fb408e18 Mon Sep 17 00:00:00 2001 | ||
From: Daniel Golle <daniel@makrotopia.org> | ||
Date: Wed, 15 Jan 2025 14:43:35 +0000 | ||
Subject: [PATCH] net: phy: realtek: clear 1000Base-T lpa if link is down | ||
|
||
Only read 1000Base-T link partner advertisement if autonegotiation has | ||
completed and otherwise 1000Base-T link partner advertisement bits. | ||
|
||
This fixes bogus 1000Base-T link partner advertisement after link goes | ||
down (eg. by disconnecting the wire). | ||
Fixes: 5cb409b3960e ("net: phy: realtek: clear 1000Base-T link partner advertisement") | ||
Signed-off-by: Daniel Golle <daniel@makrotopia.org> | ||
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> | ||
Signed-off-by: David S. Miller <davem@davemloft.net> | ||
--- | ||
drivers/net/phy/realtek.c | 19 ++++++++----------- | ||
1 file changed, 8 insertions(+), 11 deletions(-) | ||
|
||
--- a/drivers/net/phy/realtek.c | ||
+++ b/drivers/net/phy/realtek.c | ||
@@ -1023,23 +1023,20 @@ static int rtl822x_c45_read_status(struc | ||
{ | ||
int ret, val; | ||
|
||
- ret = genphy_c45_read_status(phydev); | ||
- if (ret < 0) | ||
- return ret; | ||
- | ||
- if (phydev->autoneg == AUTONEG_DISABLE || | ||
- !genphy_c45_aneg_done(phydev)) | ||
- mii_stat1000_mod_linkmode_lpa_t(phydev->lp_advertising, 0); | ||
- | ||
/* Vendor register as C45 has no standardized support for 1000BaseT */ | ||
- if (phydev->autoneg == AUTONEG_ENABLE) { | ||
+ if (phydev->autoneg == AUTONEG_ENABLE && genphy_c45_aneg_done(phydev)) { | ||
val = phy_read_mmd(phydev, MDIO_MMD_VEND2, | ||
RTL822X_VND2_GANLPAR); | ||
if (val < 0) | ||
return val; | ||
- | ||
- mii_stat1000_mod_linkmode_lpa_t(phydev->lp_advertising, val); | ||
+ } else { | ||
+ val = 0; | ||
} | ||
+ mii_stat1000_mod_linkmode_lpa_t(phydev->lp_advertising, val); | ||
+ | ||
+ ret = genphy_c45_read_status(phydev); | ||
+ if (ret < 0) | ||
+ return ret; | ||
|
||
if (!phydev->link) | ||
return 0; |
35 changes: 35 additions & 0 deletions
35
...eric/backport-6.6/781-21-v6.13-net-phy-realtek-clear-master_slave_state-if-link-is-.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
From ea8318cb33e593bbfc59d637eae45a69732c5387 Mon Sep 17 00:00:00 2001 | ||
From: Daniel Golle <daniel@makrotopia.org> | ||
Date: Wed, 15 Jan 2025 14:43:43 +0000 | ||
Subject: [PATCH] net: phy: realtek: clear master_slave_state if link is down | ||
|
||
rtlgen_decode_physr() which sets master_slave_state isn't called in case | ||
the link is down and other than rtlgen_read_status(), | ||
rtl822x_c45_read_status() doesn't implicitely clear master_slave_state. | ||
|
||
Avoid stale master_slave_state by always setting it to | ||
MASTER_SLAVE_STATE_UNKNOWN in rtl822x_c45_read_status() in case the link | ||
is down. | ||
|
||
Fixes: 081c9c0265c9 ("net: phy: realtek: read duplex and gbit master from PHYSR register") | ||
Signed-off-by: Daniel Golle <daniel@makrotopia.org> | ||
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> | ||
Signed-off-by: David S. Miller <davem@davemloft.net> | ||
--- | ||
drivers/net/phy/realtek.c | 4 +++- | ||
1 file changed, 3 insertions(+), 1 deletion(-) | ||
|
||
--- a/drivers/net/phy/realtek.c | ||
+++ b/drivers/net/phy/realtek.c | ||
@@ -1038,8 +1038,10 @@ static int rtl822x_c45_read_status(struc | ||
if (ret < 0) | ||
return ret; | ||
|
||
- if (!phydev->link) | ||
+ if (!phydev->link) { | ||
+ phydev->master_slave_state = MASTER_SLAVE_STATE_UNKNOWN; | ||
return 0; | ||
+ } | ||
|
||
/* Read actual speed from vendor register. */ | ||
val = phy_read_mmd(phydev, MDIO_MMD_VEND2, RTL_VND2_PHYSR); |
42 changes: 42 additions & 0 deletions
42
...et/linux/generic/backport-6.6/781-22-v6.13-net-phy-realtek-always-clear-NBase-T-lpa.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
From d3eb58549842c60ed46f37da7f4da969e3d6ecd3 Mon Sep 17 00:00:00 2001 | ||
From: Daniel Golle <daniel@makrotopia.org> | ||
Date: Wed, 15 Jan 2025 14:45:00 +0000 | ||
Subject: [PATCH] net: phy: realtek: always clear NBase-T lpa | ||
|
||
Clear NBase-T link partner advertisement before calling | ||
rtlgen_read_status() to avoid phy_resolve_aneg_linkmode() wrongly | ||
setting speed and duplex. | ||
|
||
This fixes bogus 2.5G/5G/10G link partner advertisement and thus | ||
speed and duplex being set by phy_resolve_aneg_linkmode() due to stale | ||
NBase-T lpa. | ||
|
||
Fixes: 68d5cd09e891 ("net: phy: realtek: change order of calls in C22 read_status()") | ||
Signed-off-by: Daniel Golle <daniel@makrotopia.org> | ||
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> | ||
Signed-off-by: David S. Miller <davem@davemloft.net> | ||
--- | ||
drivers/net/phy/realtek.c | 6 +++--- | ||
1 file changed, 3 insertions(+), 3 deletions(-) | ||
|
||
--- a/drivers/net/phy/realtek.c | ||
+++ b/drivers/net/phy/realtek.c | ||
@@ -952,15 +952,15 @@ static int rtl822x_read_status(struct ph | ||
{ | ||
int lpadv, ret; | ||
|
||
+ mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0); | ||
+ | ||
ret = rtlgen_read_status(phydev); | ||
if (ret < 0) | ||
return ret; | ||
|
||
if (phydev->autoneg == AUTONEG_DISABLE || | ||
- !phydev->autoneg_complete) { | ||
- mii_10gbt_stat_mod_linkmode_lpa_t(phydev->lp_advertising, 0); | ||
+ !phydev->autoneg_complete) | ||
return 0; | ||
- } | ||
|
||
lpadv = phy_read_paged(phydev, 0xa5d, 0x13); | ||
if (lpadv < 0) |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.