generic: use genphy_soft_reset for RealTek 2.5G PHYs
[openwrt/staging/dedeckeh.git] / target / linux / generic / pending-5.15 / 724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
1 From 85cd45580f5e3b26068cccb7d6173f200e754dc0 Mon Sep 17 00:00:00 2001
2 From: Daniel Golle <daniel@makrotopia.org>
3 Date: Sun, 2 Apr 2023 23:56:16 +0100
4 Subject: [PATCH 1/2] net: phy: realtek: use genphy_soft_reset for 2.5G PHYs
5
6 Some vendor bootloaders do weird things with those PHYs which result in
7 link modes being reported wrongly. Start from a clean sheet by resetting
8 the PHY.
9
10 Reported-by: Yevhen Kolomeiko <jarvis2709@gmail.com>
11 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
12 ---
13 drivers/net/phy/realtek.c | 6 ++++++
14 1 file changed, 6 insertions(+)
15
16 --- a/drivers/net/phy/realtek.c
17 +++ b/drivers/net/phy/realtek.c
18 @@ -1013,6 +1013,7 @@ static struct phy_driver realtek_drvs[]
19 .write_page = rtl821x_write_page,
20 .read_mmd = rtl822x_read_mmd,
21 .write_mmd = rtl822x_write_mmd,
22 + .soft_reset = genphy_soft_reset,
23 }, {
24 PHY_ID_MATCH_EXACT(0x001cc840),
25 .name = "RTL8226B_RTL8221B 2.5Gbps PHY",
26 @@ -1025,6 +1026,7 @@ static struct phy_driver realtek_drvs[]
27 .write_page = rtl821x_write_page,
28 .read_mmd = rtl822x_read_mmd,
29 .write_mmd = rtl822x_write_mmd,
30 + .soft_reset = genphy_soft_reset,
31 }, {
32 PHY_ID_MATCH_EXACT(0x001cc838),
33 .name = "RTL8226-CG 2.5Gbps PHY",
34 @@ -1035,6 +1037,7 @@ static struct phy_driver realtek_drvs[]
35 .resume = rtlgen_resume,
36 .read_page = rtl821x_read_page,
37 .write_page = rtl821x_write_page,
38 + .soft_reset = genphy_soft_reset,
39 }, {
40 PHY_ID_MATCH_EXACT(0x001cc848),
41 .name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
42 @@ -1045,6 +1048,7 @@ static struct phy_driver realtek_drvs[]
43 .resume = rtlgen_resume,
44 .read_page = rtl821x_read_page,
45 .write_page = rtl821x_write_page,
46 + .soft_reset = genphy_soft_reset,
47 }, {
48 PHY_ID_MATCH_EXACT(0x001cc849),
49 .name = "RTL8221B-VB-CG 2.5Gbps PHY",
50 @@ -1056,6 +1060,7 @@ static struct phy_driver realtek_drvs[]
51 .resume = rtlgen_resume,
52 .read_page = rtl821x_read_page,
53 .write_page = rtl821x_write_page,
54 + .soft_reset = genphy_soft_reset,
55 }, {
56 PHY_ID_MATCH_EXACT(0x001cc84a),
57 .name = "RTL8221B-VM-CG 2.5Gbps PHY",
58 @@ -1067,6 +1072,7 @@ static struct phy_driver realtek_drvs[]
59 .resume = rtlgen_resume,
60 .read_page = rtl821x_read_page,
61 .write_page = rtl821x_write_page,
62 + .soft_reset = genphy_soft_reset,
63 }, {
64 PHY_ID_MATCH_EXACT(0x001cc961),
65 .name = "RTL8366RB Gigabit Ethernet",