[openwrt/openwrt] realtek: pcs: rtl931x: separate and reuse 1000base-x config

LEDE Commits lede-commits at lists.infradead.org
Tue Dec 23 09:56:44 PST 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7899dfa6ef716aabc4cda07822ffaf80e23f2a4f

commit 7899dfa6ef716aabc4cda07822ffaf80e23f2a4f
Author: Jonas Jelonek <jelonek.jonas at gmail.com>
AuthorDate: Sun Dec 14 11:54:15 2025 +0000

    realtek: pcs: rtl931x: separate and reuse 1000base-x config
    
    Move the configuration of 1000Base-X mode into its own function. This
    way, redundant code can be replaced by a single function call.
    
    Signed-off-by: Jonas Jelonek <jelonek.jonas at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/21184
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../files-6.12/drivers/net/pcs/pcs-rtl-otto.c      | 24 ++++++++++++----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c
index 347800de78..fde80b66ba 100644
--- a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c
+++ b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c
@@ -2676,6 +2676,17 @@ static sds_config sds_config_10p3125g_cmu_type1[] = {
 	{ 0x2F, 0x0F, 0xA470 }, { 0x2F, 0x10, 0x8000 }, { 0x2F, 0x11, 0x037B }
 };
 
+static int rtpcs_931x_sds_config_fiber_1g(struct rtpcs_serdes *sds)
+{
+	rtpcs_sds_write_bits(sds, 0x43, 0x12, 15, 14, 0x0);
+
+	rtpcs_sds_write_bits(sds, 0x42, 0x0, 12, 12, 0x1);
+	rtpcs_sds_write_bits(sds, 0x42, 0x0, 6, 6, 0x1);
+	rtpcs_sds_write_bits(sds, 0x42, 0x0, 13, 13, 0x0);
+
+	return 0;
+}
+
 static int rtpcs_931x_sds_config_mode(struct rtpcs_serdes *sds,
 				      enum rtpcs_sds_mode hw_mode, int chiptype)
 {
@@ -2686,11 +2697,7 @@ static int rtpcs_931x_sds_config_mode(struct rtpcs_serdes *sds,
 		break;
 
 	case RTPCS_SDS_MODE_1000BASEX:
-		rtpcs_sds_write_bits(sds, 0x43, 0x13, 15, 14, 0);
-
-		rtpcs_sds_write_bits(sds, 0x42, 0x0, 12, 12, 1);
-		rtpcs_sds_write_bits(sds, 0x42, 0x0, 6, 6, 1);
-		rtpcs_sds_write_bits(sds, 0x42, 0x0, 13, 13, 0);
+		rtpcs_931x_sds_config_fiber_1g(sds);
 		break;
 
 	case RTPCS_SDS_MODE_2500BASEX:
@@ -2701,12 +2708,7 @@ static int rtpcs_931x_sds_config_mode(struct rtpcs_serdes *sds,
 		/* configure 10GR fiber mode=1 */
 		rtpcs_sds_write_bits(sds, 0x1f, 0xb, 1, 1, 1);
 
-		/* init fiber_1g */
-		rtpcs_sds_write_bits(sds, 0x43, 0x13, 15, 14, 0);
-
-		rtpcs_sds_write_bits(sds, 0x42, 0x0, 12, 12, 1);
-		rtpcs_sds_write_bits(sds, 0x42, 0x0, 6, 6, 1);
-		rtpcs_sds_write_bits(sds, 0x42, 0x0, 13, 13, 0);
+		rtpcs_931x_sds_config_fiber_1g(sds);
 
 		/* init auto */
 		rtpcs_sds_write_bits(sds, 0x1f, 13, 15, 0, 0x109e);




More information about the lede-commits mailing list