[openwrt/openwrt] ramips/mt7621: mark EEE as broken in devicetree

LEDE Commits lede-commits at lists.infradead.org
Mon Jun 16 06:30:39 PDT 2025


hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/926314ab12e4858477b35d152157339e9038dee6

commit 926314ab12e4858477b35d152157339e9038dee6
Author: Mateusz Jończyk <mat.jonczyk at o2.pl>
AuthorDate: Sat Apr 5 22:41:56 2025 +0200

    ramips/mt7621: mark EEE as broken in devicetree
    
    Multiple users have reported a regression [1] in OpenWRT 24.10 with the
    ramips/mt7621 target, which has the MT7530 PHYs: the Ethernet link is
    periodically going down for a brief period of time:
    
            mt7530-mdio mdio-bus:1f lan1: Link is Down
            br-lan: port 1(lan1) entered disabled state
            mt7530-mdio mdio-bus:1f lan1: Link is Up - 1Gbps/Full - flow control rx/tx
    
    The symptoms stop after disabling EEE and it was reported by Mediatek in
    2021 that EEE is unstable for the MT7530 PHYs [2]:
    
    > EEE of the 10-year-old MT7530 internal gephy has many IOT problems, so
    > it is recommended to disable its EEE.
    
    EEE is enabled by default for these devices in OpenWRT 24.10 whereas in the
    previous version (OpenWRT 23.05, Linux 5.15) it was not. It was determined
    that in Linux 6.6, the PHY driver tries to disable EEE in
    mtk_gephy_config_init() in drivers/net/phy/mediatek-ge.c, but this is later
    overridden by a subsequent execution of the genphy_c45_write_eee_adv()
    function, which enables every EEE mode supported.
    
    The best way forward for now seems to be to mark EEE as broken directly in
    the devicetree, which affects the genphy_c45_write_eee_adv() function.
    
    There are some devices, like GnuBee GB-PC2, that define additional PHYs,
    for example ethernet-phy at 5 or ethernet-phy at 7. As reported by Chester A.
    Unal, these are not MT7530 PHYs and they are not affected.
    
    This would need to be cherrypicked for the OpenWRT 24.10 branch.
    
    [1] https://github.com/openwrt/openwrt/issues/17351
    
    [2] https://lore.kernel.org/all/0adde34f936a2dafca40b06b408d82afe0852327.camel@mediatek.com/
    
    Tested-by: Darren Tucker
    Signed-off-by: Mateusz Jończyk <mat.jonczyk at o2.pl>
    Closes: https://github.com/openwrt/openwrt/issues/17351
    Link: https://github.com/openwrt/openwrt/pull/18585
    (cherry picked from commit b7fa9d92aef86453c28875b50ae27fbab3b500a4)
    Signed-off-by: Mateusz Jończyk <mat.jonczyk at o2.pl>
    Tested-by: Mateusz Jończyk <mat.jonczyk at o2.pl>
    Link: https://github.com/openwrt/openwrt/pull/19150
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ramips/dts/mt7621.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi
index da992bada4..da03d47ff6 100644
--- a/target/linux/ramips/dts/mt7621.dtsi
+++ b/target/linux/ramips/dts/mt7621.dtsi
@@ -522,26 +522,36 @@
 					ethphy0: ethernet-phy at 0 {
 						reg = <0>;
 						interrupts = <0>;
+						eee-broken-100tx;
+						eee-broken-1000t;
 					};
 
 					ethphy1: ethernet-phy at 1 {
 						reg = <1>;
 						interrupts = <1>;
+						eee-broken-100tx;
+						eee-broken-1000t;
 					};
 
 					ethphy2: ethernet-phy at 2 {
 						reg = <2>;
 						interrupts = <2>;
+						eee-broken-100tx;
+						eee-broken-1000t;
 					};
 
 					ethphy3: ethernet-phy at 3 {
 						reg = <3>;
 						interrupts = <3>;
+						eee-broken-100tx;
+						eee-broken-1000t;
 					};
 
 					ethphy4: ethernet-phy at 4 {
 						reg = <4>;
 						interrupts = <4>;
+						eee-broken-100tx;
+						eee-broken-1000t;
 					};
 				};
 




More information about the lede-commits mailing list