From 446ca9fd630d54572f360ea42f852fe0ed66cf24 Mon Sep 17 00:00:00 2001 From: Jonas Jelonek Date: Thu, 24 Sep 2026 11:46:16 +0000 Subject: [PATCH] realtek: pcs: rtl93xx: enable 100BASE-X support The generic, RTL930x, and RTL931x setup paths now handle 100BASE-X. Add the RTL93xx hardware mode value and mapping, select the 1G analog CMU page, and advertise the mode from RTL93xx SerDes instances. This makes the prepared support available to PCS consumers. Link: https://github.com/openwrt/openwrt/pull/25378 Signed-off-by: Jonas Jelonek --- .../linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c b/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c index 82305ea2a22..617b2c5038e 100644 --- a/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c +++ b/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c @@ -82,6 +82,7 @@ #define RTPCS_93XX_SDS_MODE_SGMII 0x02 #define RTPCS_93XX_SDS_MODE_1000BASEX 0x04 +#define RTPCS_93XX_SDS_MODE_100BASEX 0x05 #define RTPCS_93XX_SDS_MODE_QSGMII 0x06 #define RTPCS_93XX_SDS_MODE_USXGMII 0x0d #define RTPCS_93XX_SDS_MODE_XSGMII 0x10 @@ -1452,6 +1453,7 @@ static const s16 rtpcs_93xx_sds_hw_mode_vals[RTPCS_SDS_MODE_MAX] = { [0 ... RTPCS_SDS_MODE_MAX - 1] = -1, [RTPCS_SDS_MODE_OFF] = RTPCS_93XX_SDS_MODE_OFF, [RTPCS_SDS_MODE_SGMII] = RTPCS_93XX_SDS_MODE_SGMII, + [RTPCS_SDS_MODE_100BASEX] = RTPCS_93XX_SDS_MODE_100BASEX, [RTPCS_SDS_MODE_1000BASEX] = RTPCS_93XX_SDS_MODE_1000BASEX, [RTPCS_SDS_MODE_2500BASEX] = RTPCS_93XX_SDS_MODE_2500BASEX, [RTPCS_SDS_MODE_10GBASER] = RTPCS_93XX_SDS_MODE_10GBASER, @@ -1866,6 +1868,7 @@ static void rtpcs_93xx_sds_fill_caps(struct rtpcs_serdes *sds) __set_bit(RTPCS_SDS_MODE_XSGMII, sds->supported_modes); __set_bit(RTPCS_SDS_MODE_USXGMII, sds->supported_modes); + __set_bit(RTPCS_SDS_MODE_100BASEX, sds->supported_modes); __set_bit(RTPCS_SDS_MODE_1000BASEX, sds->supported_modes); __set_bit(RTPCS_SDS_MODE_2500BASEX, sds->supported_modes); __set_bit(RTPCS_SDS_MODE_10GBASER, sds->supported_modes); @@ -1880,6 +1883,7 @@ static int rtpcs_93xx_sds_get_cmu_page(enum rtpcs_sds_mode hw_mode) { switch (hw_mode) { case RTPCS_SDS_MODE_SGMII: + case RTPCS_SDS_MODE_100BASEX: case RTPCS_SDS_MODE_1000BASEX: return PAGE_ANA_1G2; case RTPCS_SDS_MODE_2500BASEX: