]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: pcs: add missing SerDes modes
authorJonas Jelonek <jelonek.jonas@gmail.com>
Wed, 24 Dec 2025 10:36:03 +0000 (10:36 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 3 Jan 2026 15:59:48 +0000 (16:59 +0100)
100Base-X mode was missing before in the enum rtpcs_sds_mode. So add it
to be able to support this mode too. Handle this mode in the
_determine_hw_mode mapper.

10G_QXGMII mode was missing in the mode mapper. Add it and map it to
USXGMII_10GQXGMII mode.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21365
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c

index e00e19b1f3113f101e425da99e2b25e1dfeb3d31..2953c5c5f57c6b29c5bc4c7ef9075858818f62c5 100644 (file)
@@ -110,6 +110,7 @@ enum rtpcs_sds_mode {
        RTPCS_SDS_MODE_OFF = 0,
 
        /* fiber modes */
+       RTPCS_SDS_MODE_100BASEX,
        RTPCS_SDS_MODE_1000BASEX,
        RTPCS_SDS_MODE_2500BASEX,
        RTPCS_SDS_MODE_10GBASER,
@@ -286,6 +287,9 @@ static int rtpcs_sds_determine_hw_mode(struct rtpcs_serdes *sds,
        case PHY_INTERFACE_MODE_NA:
                *hw_mode = RTPCS_SDS_MODE_OFF;
                break;
+       case PHY_INTERFACE_MODE_100BASEX:
+               *hw_mode = RTPCS_SDS_MODE_100BASEX;
+               break;
        case PHY_INTERFACE_MODE_1000BASEX:
                *hw_mode = RTPCS_SDS_MODE_1000BASEX;
                break;
@@ -305,6 +309,9 @@ static int rtpcs_sds_determine_hw_mode(struct rtpcs_serdes *sds,
                /* TODO: set this depending on number of links on SerDes */
                *hw_mode = RTPCS_SDS_MODE_USXGMII_10GSXGMII;
                break;
+       case PHY_INTERFACE_MODE_10G_QXGMII:
+               *hw_mode = RTPCS_SDS_MODE_USXGMII_10GQXGMII;
+               break;
        default:
                return -ENOTSUPP;
        }