]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: pcs: rtl93xx: make cmu_page getter generic
authorJonas Jelonek <jelonek.jonas@gmail.com>
Fri, 10 Jul 2026 08:48:48 +0000 (08:48 +0000)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Wed, 15 Jul 2026 17:36:58 +0000 (19:36 +0200)
Rename rtpcs_931x_sds_cmu_page_get() to rtpcs_93xx_sds_get_cmu_page()
and move it next to the other 93xx-shared helpers, so RTL930X can
reuse it instead of duplicating the same hw_mode-to-CMU-page switch.
Also fix the wrong -ENOTSUPP return to -EOPNOTSUPP.

Link: https://github.com/openwrt/openwrt/pull/24232
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c

index 1e71c84e825232117cf5bc927e86c875d2453433..5bf464e1448891ab68ae5794ce3b6a5e240c43e4 100644 (file)
@@ -1618,6 +1618,31 @@ static void rtpcs_93xx_sds_fill_caps(struct rtpcs_serdes *sds)
        }
 }
 
+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_1000BASEX:
+               return PAGE_ANA_1G2;
+       case RTPCS_SDS_MODE_2500BASEX:
+               return PAGE_ANA_3G1;
+       case RTPCS_SDS_MODE_QSGMII:
+               return PAGE_ANA_5G0;
+       //      return PAGE_ANA_6G0;
+       case RTPCS_SDS_MODE_XSGMII:
+       case RTPCS_SDS_MODE_USXGMII_10GSXGMII:
+       case RTPCS_SDS_MODE_USXGMII_10GDXGMII:
+       case RTPCS_SDS_MODE_USXGMII_10GQXGMII:
+       case RTPCS_SDS_MODE_USXGMII_5GSXGMII:
+       case RTPCS_SDS_MODE_USXGMII_5GDXGMII:
+       case RTPCS_SDS_MODE_USXGMII_2_5GSXGMII:
+       case RTPCS_SDS_MODE_10GBASER:
+               return PAGE_ANA_10G;
+       default:
+               return -EOPNOTSUPP;
+       }
+}
+
 /* RTL930X */
 
 /* This mapping is not coherent so it cannot be expressed arithmetically */
@@ -3235,36 +3260,11 @@ static void rtpcs_931x_sds_rx_reset(struct rtpcs_serdes *sds)
        msleep(50);
 }
 
-static int rtpcs_931x_sds_cmu_page_get(enum rtpcs_sds_mode hw_mode)
-{
-       switch (hw_mode) {
-       case RTPCS_SDS_MODE_SGMII:
-       case RTPCS_SDS_MODE_1000BASEX:
-               return PAGE_ANA_1G2;
-       case RTPCS_SDS_MODE_2500BASEX:
-               return PAGE_ANA_3G1;
-       case RTPCS_SDS_MODE_QSGMII:
-               return PAGE_ANA_5G0;
-       //      return PAGE_ANA_6G0;
-       case RTPCS_SDS_MODE_XSGMII:
-       case RTPCS_SDS_MODE_USXGMII_10GSXGMII:
-       case RTPCS_SDS_MODE_USXGMII_10GDXGMII:
-       case RTPCS_SDS_MODE_USXGMII_10GQXGMII:
-       case RTPCS_SDS_MODE_USXGMII_5GSXGMII:
-       case RTPCS_SDS_MODE_USXGMII_5GDXGMII:
-       case RTPCS_SDS_MODE_USXGMII_2_5GSXGMII:
-       case RTPCS_SDS_MODE_10GBASER:
-               return PAGE_ANA_10G;
-       default:
-               return -ENOTSUPP;
-       }
-}
-
 static int rtpcs_931x_sds_get_pll_select(struct rtpcs_serdes *sds, enum rtpcs_sds_pll_type *pll)
 {
        int cmu_page, pll_sel;
 
-       cmu_page = rtpcs_931x_sds_cmu_page_get(sds->hw_mode);
+       cmu_page = rtpcs_93xx_sds_get_cmu_page(sds->hw_mode);
        if (cmu_page < 0)
                return cmu_page;
 
@@ -3283,7 +3283,7 @@ static int rtpcs_931x_sds_set_pll_select(struct rtpcs_serdes *sds, enum rtpcs_sd
        int cmu_page, ret, val;
        int frc_lc_mode_bit;
 
-       cmu_page = rtpcs_931x_sds_cmu_page_get(hw_mode);
+       cmu_page = rtpcs_93xx_sds_get_cmu_page(hw_mode);
        if (cmu_page < 0)
                return cmu_page;