[openwrt/openwrt] generic: import and move accepted RealTek PHY patches

LEDE Commits lede-commits at lists.infradead.org
Thu Oct 17 05:35:33 PDT 2024


dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/abda39d86d8f8a48b6fc324a5e2eebe3e8387c2e

commit abda39d86d8f8a48b6fc324a5e2eebe3e8387c2e
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Thu Oct 17 13:33:18 2024 +0100

    generic: import and move accepted RealTek PHY patches
    
    Import commits from upstream Linux and move/rename existing patches
    which have been acceped.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 ...ltek-Check-the-index-value-in-led_hw_cont.patch | 32 +++++++++++
 ...ltek-Fix-MMD-access-on-RTL8126A-integrate.patch | 67 ++++++++++++++++++++++
 ...tek-read-duplex-and-gbit-master-from-PHY.patch} | 49 ++++++----------
 ...tek-change-order-of-calls-in-C22-read_st.patch} | 11 ++--
 ...tek-clear-1000Base-T-link-partner-advert.patch} | 10 ++--
 ...altek-use-genphy_soft_reset-for-2.5G-PHYs.patch | 16 +++---
 ...ek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch |  4 +-
 ...ltek-make-sure-paged-read-is-protected-by.patch |  2 +-
 ...4-net-phy-realtek-introduce-rtl822x_probe.patch | 20 +++----
 ...-realtek-detect-early-version-of-RTL8221B.patch |  2 +-
 ...phy-realtek-support-interrupt-of-RTL8221B.patch | 10 ++--
 11 files changed, 158 insertions(+), 65 deletions(-)

diff --git a/target/linux/generic/backport-6.6/781-13-v6.12-net-phy-realtek-Check-the-index-value-in-led_hw_cont.patch b/target/linux/generic/backport-6.6/781-13-v6.12-net-phy-realtek-Check-the-index-value-in-led_hw_cont.patch
new file mode 100644
index 0000000000..a6f8b6d1c5
--- /dev/null
+++ b/target/linux/generic/backport-6.6/781-13-v6.12-net-phy-realtek-Check-the-index-value-in-led_hw_cont.patch
@@ -0,0 +1,32 @@
+From c283782fc5d60c4d8169137c6f955aa3553d3b3d Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang at canonical.com>
+Date: Fri, 27 Sep 2024 19:46:10 +0800
+Subject: [PATCH] net: phy: realtek: Check the index value in
+ led_hw_control_get
+
+Just like rtl8211f_led_hw_is_supported() and
+rtl8211f_led_hw_control_set(), the rtl8211f_led_hw_control_get() also
+needs to check the index value, otherwise the caller is likely to get
+an incorrect rules.
+
+Fixes: 17784801d888 ("net: phy: realtek: Add support for PHY LEDs on RTL8211F")
+Signed-off-by: Hui Wang <hui.wang at canonical.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Link: https://patch.msgid.link/20240927114610.1278935-1-hui.wang@canonical.com
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/phy/realtek.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/net/phy/realtek.c
++++ b/drivers/net/phy/realtek.c
+@@ -527,6 +527,9 @@ static int rtl8211f_led_hw_control_get(s
+ {
+ 	int val;
+ 
++	if (index >= RTL8211F_LED_COUNT)
++		return -EINVAL;
++
+ 	val = phy_read_paged(phydev, 0xd04, RTL8211F_LEDCR);
+ 	if (val < 0)
+ 		return val;
diff --git a/target/linux/generic/backport-6.6/781-14-v6.12-net-phy-realtek-Fix-MMD-access-on-RTL8126A-integrate.patch b/target/linux/generic/backport-6.6/781-14-v6.12-net-phy-realtek-Fix-MMD-access-on-RTL8126A-integrate.patch
new file mode 100644
index 0000000000..b50e133a67
--- /dev/null
+++ b/target/linux/generic/backport-6.6/781-14-v6.12-net-phy-realtek-Fix-MMD-access-on-RTL8126A-integrate.patch
@@ -0,0 +1,67 @@
+From a6ad589c1d118f9d5b1bc4c6888d42919f830340 Mon Sep 17 00:00:00 2001
+From: Heiner Kallweit <hkallweit1 at gmail.com>
+Date: Mon, 7 Oct 2024 11:57:41 +0200
+Subject: [PATCH] net: phy: realtek: Fix MMD access on RTL8126A-integrated PHY
+
+All MMD reads return 0 for the RTL8126A-integrated PHY. Therefore phylib
+assumes it doesn't support EEE, what results in higher power consumption,
+and a significantly higher chip temperature in my case.
+To fix this split out the PHY driver for the RTL8126A-integrated PHY
+and set the read_mmd/write_mmd callbacks to read from vendor-specific
+registers.
+
+Fixes: 5befa3728b85 ("net: phy: realtek: add support for RTL8126A-integrated 5Gbps PHY")
+Cc: stable at vger.kernel.org
+Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ drivers/net/phy/realtek.c | 24 +++++++++++++++++++++++-
+ 1 file changed, 23 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/phy/realtek.c
++++ b/drivers/net/phy/realtek.c
+@@ -1081,6 +1081,16 @@ static int rtl8221b_vn_cg_c45_match_phy_
+ 	return rtlgen_is_c45_match(phydev, RTL_8221B_VN_CG, true);
+ }
+ 
++static int rtl8251b_c22_match_phy_device(struct phy_device *phydev)
++{
++	return rtlgen_is_c45_match(phydev, RTL_8251B, false);
++}
++
++static int rtl8251b_c45_match_phy_device(struct phy_device *phydev)
++{
++	return rtlgen_is_c45_match(phydev, RTL_8251B, true);
++}
++
+ static int rtlgen_resume(struct phy_device *phydev)
+ {
+ 	int ret = genphy_resume(phydev);
+@@ -1418,7 +1428,7 @@ static struct phy_driver realtek_drvs[]
+ 		.suspend        = genphy_c45_pma_suspend,
+ 		.resume         = rtlgen_c45_resume,
+ 	}, {
+-		PHY_ID_MATCH_EXACT(0x001cc862),
++		.match_phy_device = rtl8251b_c45_match_phy_device,
+ 		.name           = "RTL8251B 5Gbps PHY",
+ 		.get_features   = rtl822x_get_features,
+ 		.config_aneg    = rtl822x_config_aneg,
+@@ -1428,6 +1438,18 @@ static struct phy_driver realtek_drvs[]
+ 		.read_page      = rtl821x_read_page,
+ 		.write_page     = rtl821x_write_page,
+ 	}, {
++		.match_phy_device = rtl8251b_c22_match_phy_device,
++		.name           = "RTL8126A-internal 5Gbps PHY",
++		.get_features   = rtl822x_get_features,
++		.config_aneg    = rtl822x_config_aneg,
++		.read_status    = rtl822x_read_status,
++		.suspend        = genphy_suspend,
++		.resume         = rtlgen_resume,
++		.read_page      = rtl821x_read_page,
++		.write_page     = rtl821x_write_page,
++		.read_mmd	= rtl822x_read_mmd,
++		.write_mmd	= rtl822x_write_mmd,
++	}, {
+ 		PHY_ID_MATCH_EXACT(0x001ccad0),
+ 		.name		= "RTL8224 2.5Gbps PHY",
+ 		.get_features   = rtl822x_c45_get_features,
diff --git a/target/linux/generic/pending-6.6/720-07-net-phy-realtek-read-duplex-and-gbit-master-from-PHY.patch b/target/linux/generic/backport-6.6/781-15-v6.13-net-phy-realtek-read-duplex-and-gbit-master-from-PHY.patch
similarity index 71%
rename from target/linux/generic/pending-6.6/720-07-net-phy-realtek-read-duplex-and-gbit-master-from-PHY.patch
rename to target/linux/generic/backport-6.6/781-15-v6.13-net-phy-realtek-read-duplex-and-gbit-master-from-PHY.patch
index d609d596af..e15218b169 100644
--- a/target/linux/generic/pending-6.6/720-07-net-phy-realtek-read-duplex-and-gbit-master-from-PHY.patch
+++ b/target/linux/generic/backport-6.6/781-15-v6.13-net-phy-realtek-read-duplex-and-gbit-master-from-PHY.patch
@@ -1,51 +1,46 @@
-From 66d82d3f04623e9c096e12c10ca51141c345ee84 Mon Sep 17 00:00:00 2001
+From 081c9c0265c91b8333165aa6230c20bcbc6f7cbf Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel at makrotopia.org>
-Date: Tue, 8 Oct 2024 20:59:51 +0100
-Subject: [PATCH] net: phy: realtek: read duplex and gbit master from PHYSR
+Date: Thu, 10 Oct 2024 14:07:16 +0100
+Subject: [PATCH 3/5] net: phy: realtek: read duplex and gbit master from PHYSR
  register
 
 The PHYSR MMD register is present and defined equally for all RTL82xx
 Ethernet PHYs.
-Read duplex and gbit master bits from rtlgen_decode_speed() and rename
+Read duplex and Gbit master bits from rtlgen_decode_speed() and rename
 it to rtlgen_decode_physr().
 
 Signed-off-by: Daniel Golle <daniel at makrotopia.org>
+Link: https://patch.msgid.link/b9a76341da851a18c985bc4774fa295babec79bb.1728565530.git.daniel@makrotopia.org
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 ---
- drivers/net/phy/realtek.c | 48 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 40 insertions(+), 8 deletions(-)
+ drivers/net/phy/realtek.c | 41 +++++++++++++++++++++++++++++++--------
+ 1 file changed, 33 insertions(+), 8 deletions(-)
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -80,20 +80,24 @@
+@@ -80,15 +80,18 @@
  
  #define RTL822X_VND2_GANLPAR				0xa414
  
 -#define RTL822X_VND2_PHYSR				0xa434
 -
- #define RTL8221B_PHYCR1				0xa430
- #define RTL8221B_PHYCR1_ALDPS_EN		BIT(2)
- #define RTL8221B_PHYCR1_ALDPS_XTAL_OFF_EN	BIT(12)
+ #define RTL8366RB_POWER_SAVE			0x15
+ #define RTL8366RB_POWER_SAVE_ON			BIT(12)
+ 
+ #define RTL9000A_GINMR				0x14
+ #define RTL9000A_GINMR_LINK_STATUS		BIT(4)
  
+-#define RTLGEN_SPEED_MASK			0x0630
 +#define RTL_VND2_PHYSR				0xa434
-+#define RTL_VND2_PHYSR_LINK			BIT(2)
 +#define RTL_VND2_PHYSR_DUPLEX			BIT(3)
 +#define RTL_VND2_PHYSR_SPEEDL			GENMASK(5, 4)
 +#define RTL_VND2_PHYSR_SPEEDH			GENMASK(10, 9)
 +#define RTL_VND2_PHYSR_MASTER			BIT(11)
 +#define RTL_VND2_PHYSR_SPEED_MASK		(RTL_VND2_PHYSR_SPEEDL | RTL_VND2_PHYSR_SPEEDH)
-+
- #define RTL8366RB_POWER_SAVE			0x15
- #define RTL8366RB_POWER_SAVE_ON			BIT(12)
- 
- #define RTL9000A_GINMR				0x14
- #define RTL9000A_GINMR_LINK_STATUS		BIT(4)
  
--#define RTLGEN_SPEED_MASK			0x0630
--
  #define RTL_GENERIC_PHYID			0x001cc800
  #define RTL_8211FVD_PHYID			0x001cc878
- #define RTL_8221B_VB_CG				0x001cc849
-@@ -661,9 +665,24 @@ static int rtl8366rb_config_init(struct
+@@ -660,9 +663,18 @@ static int rtl8366rb_config_init(struct
  }
  
  /* get actual speed to cover the downshift case */
@@ -53,12 +48,6 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +static void rtlgen_decode_physr(struct phy_device *phydev, int val)
  {
 -	switch (val & RTLGEN_SPEED_MASK) {
-+	/* bit 2
-+	 * 0: Link not OK
-+	 * 1: Link OK
-+	 */
-+	phydev->link = !!(val & RTL_VND2_PHYSR_LINK);
-+
 +	/* bit 3
 +	 * 0: Half Duplex
 +	 * 1: Full Duplex
@@ -72,7 +61,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	case 0x0000:
  		phydev->speed = SPEED_10;
  		break;
-@@ -685,6 +704,19 @@ static void rtlgen_decode_speed(struct p
+@@ -684,6 +696,19 @@ static void rtlgen_decode_speed(struct p
  	default:
  		break;
  	}
@@ -92,7 +81,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  }
  
  static int rtlgen_read_status(struct phy_device *phydev)
-@@ -702,7 +734,7 @@ static int rtlgen_read_status(struct phy
+@@ -701,7 +726,7 @@ static int rtlgen_read_status(struct phy
  	if (val < 0)
  		return val;
  
@@ -101,7 +90,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  	return 0;
  }
-@@ -1030,11 +1062,11 @@ static int rtl822x_c45_read_status(struc
+@@ -1007,11 +1032,11 @@ static int rtl822x_c45_read_status(struc
  		return 0;
  
  	/* Read actual speed from vendor register. */
diff --git a/target/linux/generic/pending-6.6/720-08-net-phy-realtek-change-order-of-calls-in-C22-read_st.patch b/target/linux/generic/backport-6.6/781-16-v6.13-net-phy-realtek-change-order-of-calls-in-C22-read_st.patch
similarity index 74%
rename from target/linux/generic/pending-6.6/720-08-net-phy-realtek-change-order-of-calls-in-C22-read_st.patch
rename to target/linux/generic/backport-6.6/781-16-v6.13-net-phy-realtek-change-order-of-calls-in-C22-read_st.patch
index 8a7ad8afa8..be7136b375 100644
--- a/target/linux/generic/pending-6.6/720-08-net-phy-realtek-change-order-of-calls-in-C22-read_st.patch
+++ b/target/linux/generic/backport-6.6/781-16-v6.13-net-phy-realtek-change-order-of-calls-in-C22-read_st.patch
@@ -1,7 +1,7 @@
-From eaca24de0c0e64145c130759207da32594d2e5d1 Mon Sep 17 00:00:00 2001
+From 68d5cd09e8919679ce13b85950debea4b2e98e04 Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel at makrotopia.org>
-Date: Tue, 8 Oct 2024 21:05:47 +0100
-Subject: [PATCH 2/3] net: phy: realtek: change order of calls in C22
+Date: Thu, 10 Oct 2024 14:07:26 +0100
+Subject: [PATCH 4/5] net: phy: realtek: change order of calls in C22
  read_status()
 
 Always call rtlgen_read_status() first, so genphy_read_status() which
@@ -9,14 +9,17 @@ is called by it clears bits in case auto-negotiation has not completed.
 Also clear 10GBT link-partner advertisement bits in case auto-negotiation
 is disabled or has not completed.
 
+Suggested-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
 Signed-off-by: Daniel Golle <daniel at makrotopia.org>
+Link: https://patch.msgid.link/b15929a41621d215c6b2b57393368086589569ec.1728565530.git.daniel@makrotopia.org
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 ---
  drivers/net/phy/realtek.c | 22 +++++++++++++++-------
  1 file changed, 15 insertions(+), 7 deletions(-)
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -979,17 +979,25 @@ static void rtl822xb_update_interface(st
+@@ -949,17 +949,25 @@ static void rtl822xb_update_interface(st
  
  static int rtl822x_read_status(struct phy_device *phydev)
  {
diff --git a/target/linux/generic/pending-6.6/720-09-net-phy-realtek-clear-1000Base-T-link-partner-advert.patch b/target/linux/generic/backport-6.6/781-17-v6.13-net-phy-realtek-clear-1000Base-T-link-partner-advert.patch
similarity index 66%
rename from target/linux/generic/pending-6.6/720-09-net-phy-realtek-clear-1000Base-T-link-partner-advert.patch
rename to target/linux/generic/backport-6.6/781-17-v6.13-net-phy-realtek-clear-1000Base-T-link-partner-advert.patch
index 824be84c68..3847d5803a 100644
--- a/target/linux/generic/pending-6.6/720-09-net-phy-realtek-clear-1000Base-T-link-partner-advert.patch
+++ b/target/linux/generic/backport-6.6/781-17-v6.13-net-phy-realtek-clear-1000Base-T-link-partner-advert.patch
@@ -1,7 +1,7 @@
-From 8b137d1e405dc90300ba577db44c70f0e026636e Mon Sep 17 00:00:00 2001
+From 5cb409b3960e75467cbb0a8e1e5596b4490570e3 Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel at makrotopia.org>
-Date: Tue, 8 Oct 2024 21:09:19 +0100
-Subject: [PATCH 3/3] net: phy: realtek: clear 1000Base-T link partner
+Date: Thu, 10 Oct 2024 14:07:39 +0100
+Subject: [PATCH 5/5] net: phy: realtek: clear 1000Base-T link partner
  advertisement
 
 Clear 1000Base-T link partner advertisement bits in Clause-45
@@ -9,13 +9,15 @@ read_status() function in case auto-negotiation is disabled or has not
 been completed.
 
 Signed-off-by: Daniel Golle <daniel at makrotopia.org>
+Link: https://patch.msgid.link/9dc9b47b2d675708afef3ad366bfd78eb584d958.1728565530.git.daniel@makrotopia.org
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 ---
  drivers/net/phy/realtek.c | 4 ++++
  1 file changed, 4 insertions(+)
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -1056,6 +1056,10 @@ static int rtl822x_c45_read_status(struc
+@@ -1026,6 +1026,10 @@ static int rtl822x_c45_read_status(struc
  	if (ret < 0)
  		return ret;
  
diff --git a/target/linux/generic/pending-6.6/720-01-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch b/target/linux/generic/pending-6.6/720-01-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
index fe8ee7b5fa..2b77b6e02f 100644
--- a/target/linux/generic/pending-6.6/720-01-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
+++ b/target/linux/generic/pending-6.6/720-01-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
@@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -1325,6 +1325,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1375,6 +1375,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.name		= "RTL8226 2.5Gbps PHY",
  		.match_phy_device = rtl8226_match_phy_device,
@@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.get_features	= rtl822x_get_features,
  		.config_aneg	= rtl822x_config_aneg,
  		.read_status	= rtl822x_read_status,
-@@ -1337,6 +1338,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1387,6 +1388,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc840),
  		.name		= "RTL8226B_RTL8221B 2.5Gbps PHY",
@@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.get_features	= rtl822x_get_features,
  		.config_aneg	= rtl822x_config_aneg,
  		.config_init    = rtl822xb_config_init,
-@@ -1351,6 +1353,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1401,6 +1403,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc838),
  		.name           = "RTL8226-CG 2.5Gbps PHY",
@@ -39,7 +39,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.read_status    = rtl822x_read_status,
-@@ -1361,6 +1364,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1411,6 +1414,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc848),
  		.name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
@@ -47,7 +47,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_init    = rtl822xb_config_init,
-@@ -1373,6 +1377,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1423,6 +1427,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vb_cg_c22_match_phy_device,
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY (C22)",
@@ -55,7 +55,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_init    = rtl822xb_config_init,
-@@ -1385,6 +1390,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1435,6 +1440,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vb_cg_c45_match_phy_device,
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY (C45)",
@@ -63,7 +63,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.config_init    = rtl822xb_config_init,
  		.get_rate_matching = rtl822xb_get_rate_matching,
  		.get_features   = rtl822x_c45_get_features,
-@@ -1395,6 +1401,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1445,6 +1451,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vn_cg_c22_match_phy_device,
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY (C22)",
@@ -71,7 +71,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
  		.config_init    = rtl822xb_config_init,
-@@ -1407,6 +1414,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1457,6 +1464,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vn_cg_c45_match_phy_device,
  		.name           = "RTL8221B-VN-CG 2.5Gbps PHY (C45)",
diff --git a/target/linux/generic/pending-6.6/720-02-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch b/target/linux/generic/pending-6.6/720-02-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
index 0c729acb7f..cbef74d317 100644
--- a/target/linux/generic/pending-6.6/720-02-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
+++ b/target/linux/generic/pending-6.6/720-02-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
@@ -20,7 +20,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -786,8 +786,8 @@ static int rtl822x_write_mmd(struct phy_
+@@ -814,8 +814,8 @@ static int rtl822x_write_mmd(struct phy_
  static int rtl822xb_config_init(struct phy_device *phydev)
  {
  	bool has_2500, has_sgmii;
@@ -30,7 +30,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  	has_2500 = test_bit(PHY_INTERFACE_MODE_2500BASEX,
  			    phydev->host_interfaces) ||
-@@ -837,7 +837,29 @@ static int rtl822xb_config_init(struct p
+@@ -865,7 +865,29 @@ static int rtl822xb_config_init(struct p
  	if (ret < 0)
  		return ret;
  
diff --git a/target/linux/generic/pending-6.6/720-03-net-phy-realtek-make-sure-paged-read-is-protected-by.patch b/target/linux/generic/pending-6.6/720-03-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
index 8b8dca8f27..216fa918e1 100644
--- a/target/linux/generic/pending-6.6/720-03-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
+++ b/target/linux/generic/pending-6.6/720-03-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
@@ -18,7 +18,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -1052,9 +1052,11 @@ static bool rtlgen_supports_2_5gbps(stru
+@@ -1092,9 +1092,11 @@ static bool rtlgen_supports_2_5gbps(stru
  {
  	int val;
  
diff --git a/target/linux/generic/pending-6.6/720-04-net-phy-realtek-introduce-rtl822x_probe.patch b/target/linux/generic/pending-6.6/720-04-net-phy-realtek-introduce-rtl822x_probe.patch
index 7350d3affc..08c13f34e4 100644
--- a/target/linux/generic/pending-6.6/720-04-net-phy-realtek-introduce-rtl822x_probe.patch
+++ b/target/linux/generic/pending-6.6/720-04-net-phy-realtek-introduce-rtl822x_probe.patch
@@ -13,9 +13,9 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -82,6 +82,10 @@
+@@ -80,6 +80,10 @@
  
- #define RTL822X_VND2_PHYSR				0xa434
+ #define RTL822X_VND2_GANLPAR				0xa414
  
 +#define RTL8221B_PHYCR1				0xa430
 +#define RTL8221B_PHYCR1_ALDPS_EN		BIT(2)
@@ -24,8 +24,8 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #define RTL8366RB_POWER_SAVE			0x15
  #define RTL8366RB_POWER_SAVE_ON			BIT(12)
  
-@@ -1102,6 +1106,25 @@ static int rtl8221b_vn_cg_c45_match_phy_
- 	return rtlgen_is_c45_match(phydev, RTL_8221B_VN_CG, true);
+@@ -1152,6 +1156,25 @@ static int rtl8251b_c45_match_phy_device
+ 	return rtlgen_is_c45_match(phydev, RTL_8251B, true);
  }
  
 +static int rtl822x_probe(struct phy_device *phydev)
@@ -50,7 +50,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static int rtlgen_resume(struct phy_device *phydev)
  {
  	int ret = genphy_resume(phydev);
-@@ -1377,6 +1400,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1427,6 +1450,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc838),
  		.name           = "RTL8226-CG 2.5Gbps PHY",
@@ -58,7 +58,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.soft_reset     = genphy_soft_reset,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
-@@ -1388,6 +1412,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1438,6 +1462,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		PHY_ID_MATCH_EXACT(0x001cc848),
  		.name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
@@ -66,7 +66,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.soft_reset     = genphy_soft_reset,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
-@@ -1401,6 +1426,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1451,6 +1476,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vb_cg_c22_match_phy_device,
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY (C22)",
@@ -74,7 +74,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.soft_reset     = genphy_soft_reset,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
-@@ -1414,6 +1440,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1464,6 +1490,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vb_cg_c45_match_phy_device,
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY (C45)",
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.soft_reset     = genphy_soft_reset,
  		.config_init    = rtl822xb_config_init,
  		.get_rate_matching = rtl822xb_get_rate_matching,
-@@ -1425,6 +1452,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1475,6 +1502,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vn_cg_c22_match_phy_device,
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY (C22)",
@@ -90,7 +90,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		.soft_reset     = genphy_soft_reset,
  		.get_features   = rtl822x_get_features,
  		.config_aneg    = rtl822x_config_aneg,
-@@ -1438,6 +1466,7 @@ static struct phy_driver realtek_drvs[]
+@@ -1488,6 +1516,7 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vn_cg_c45_match_phy_device,
  		.name           = "RTL8221B-VN-CG 2.5Gbps PHY (C45)",
diff --git a/target/linux/generic/pending-6.6/720-05-net-phy-realtek-detect-early-version-of-RTL8221B.patch b/target/linux/generic/pending-6.6/720-05-net-phy-realtek-detect-early-version-of-RTL8221B.patch
index 204d7a0414..6938552d14 100644
--- a/target/linux/generic/pending-6.6/720-05-net-phy-realtek-detect-early-version-of-RTL8221B.patch
+++ b/target/linux/generic/pending-6.6/720-05-net-phy-realtek-detect-early-version-of-RTL8221B.patch
@@ -14,7 +14,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -1080,10 +1080,32 @@ static int rtl8226_match_phy_device(stru
+@@ -1120,10 +1120,32 @@ static int rtl8226_match_phy_device(stru
  static int rtlgen_is_c45_match(struct phy_device *phydev, unsigned int id,
  			       bool is_c45)
  {
diff --git a/target/linux/generic/pending-6.6/720-06-net-phy-realtek-support-interrupt-of-RTL8221B.patch b/target/linux/generic/pending-6.6/720-06-net-phy-realtek-support-interrupt-of-RTL8221B.patch
index 0ae7b385cd..a796b8f011 100644
--- a/target/linux/generic/pending-6.6/720-06-net-phy-realtek-support-interrupt-of-RTL8221B.patch
+++ b/target/linux/generic/pending-6.6/720-06-net-phy-realtek-support-interrupt-of-RTL8221B.patch
@@ -12,7 +12,7 @@ Signed-off-by: Jianhui Zhao <zhaojh329 at gmail.com>
 
 --- a/drivers/net/phy/realtek.c
 +++ b/drivers/net/phy/realtek.c
-@@ -1282,6 +1282,51 @@ static irqreturn_t rtl9000a_handle_inter
+@@ -1332,6 +1332,51 @@ static irqreturn_t rtl9000a_handle_inter
  	return IRQ_HANDLED;
  }
  
@@ -64,7 +64,7 @@ Signed-off-by: Jianhui Zhao <zhaojh329 at gmail.com>
  static struct phy_driver realtek_drvs[] = {
  	{
  		PHY_ID_MATCH_EXACT(0x00008201),
-@@ -1448,6 +1493,8 @@ static struct phy_driver realtek_drvs[]
+@@ -1498,6 +1543,8 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vb_cg_c22_match_phy_device,
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY (C22)",
@@ -73,7 +73,7 @@ Signed-off-by: Jianhui Zhao <zhaojh329 at gmail.com>
  		.probe          = rtl822x_probe,
  		.soft_reset     = genphy_soft_reset,
  		.get_features   = rtl822x_get_features,
-@@ -1462,6 +1509,8 @@ static struct phy_driver realtek_drvs[]
+@@ -1512,6 +1559,8 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vb_cg_c45_match_phy_device,
  		.name           = "RTL8221B-VB-CG 2.5Gbps PHY (C45)",
@@ -82,7 +82,7 @@ Signed-off-by: Jianhui Zhao <zhaojh329 at gmail.com>
  		.probe          = rtl822x_probe,
  		.soft_reset     = genphy_soft_reset,
  		.config_init    = rtl822xb_config_init,
-@@ -1474,6 +1523,8 @@ static struct phy_driver realtek_drvs[]
+@@ -1524,6 +1573,8 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vn_cg_c22_match_phy_device,
  		.name           = "RTL8221B-VM-CG 2.5Gbps PHY (C22)",
@@ -91,7 +91,7 @@ Signed-off-by: Jianhui Zhao <zhaojh329 at gmail.com>
  		.probe          = rtl822x_probe,
  		.soft_reset     = genphy_soft_reset,
  		.get_features   = rtl822x_get_features,
-@@ -1488,6 +1539,8 @@ static struct phy_driver realtek_drvs[]
+@@ -1538,6 +1589,8 @@ static struct phy_driver realtek_drvs[]
  	}, {
  		.match_phy_device = rtl8221b_vn_cg_c45_match_phy_device,
  		.name           = "RTL8221B-VN-CG 2.5Gbps PHY (C45)",




More information about the lede-commits mailing list