]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: drop usage of proprietary HSGMII mode
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Wed, 10 Sep 2025 05:37:08 +0000 (01:37 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 12 Sep 2025 19:00:08 +0000 (21:00 +0200)
The only consumers of the Realtek HSGMII (2.5G SGMII) mode were
the RTL8226/RTL8221B PHYs. These have been converted to dynamic
SGMII/2500base-x mode switching. Drop the leftovers of the mode
implementation.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/20002
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c
target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c
target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c

index 8829180585078fd3f5be06e5f6e290e6b986b78e..144ed01c88cc8c6a5f740332ec493f9f8b842ad5 100644 (file)
@@ -348,8 +348,6 @@ static int __init rtl83xx_mdio_probe(struct rtl838x_switch_priv *priv)
 
                if (of_get_phy_mode(dn, &interface))
                        interface = PHY_INTERFACE_MODE_NA;
-               if (interface == PHY_INTERFACE_MODE_HSGMII)
-                       priv->ports[pn].is2G5 = true;
                if (interface == PHY_INTERFACE_MODE_USXGMII)
                        priv->ports[pn].is2G5 = priv->ports[pn].is10G = true;
                if (interface == PHY_INTERFACE_MODE_10GBASER)
index a30c681c9a9834f52469cb1c1ddb9ecc8dd78648..57be6ffa549244ba65f4f1052897a99b9c081b09 100644 (file)
@@ -823,12 +823,6 @@ static void rtl931x_phylink_mac_config(struct dsa_switch *ds, int port,
        pr_info("%s: speed %d sds_num %d\n", __func__, state->speed, sds_num);
 
        switch (state->interface) {
-       case PHY_INTERFACE_MODE_HSGMII:
-               pr_info("%s setting mode PHY_INTERFACE_MODE_HSGMII\n", __func__);
-               band = rtl931x_sds_cmu_band_get(sds_num, PHY_INTERFACE_MODE_HSGMII);
-               rtl931x_sds_init(sds_num, PHY_INTERFACE_MODE_HSGMII);
-               band = rtl931x_sds_cmu_band_set(sds_num, true, 62, PHY_INTERFACE_MODE_HSGMII);
-               break;
        case PHY_INTERFACE_MODE_1000BASEX:
                band = rtl931x_sds_cmu_band_get(sds_num, PHY_INTERFACE_MODE_1000BASEX);
                rtl931x_sds_init(sds_num, PHY_INTERFACE_MODE_1000BASEX);
index 6f3533cbbb7f3df4394866f536e4e2125cc4eba8..a1f5d2bf2c5d160ff04fd7673f8310dd5814447f 100644 (file)
@@ -1265,9 +1265,6 @@ static int rtmdio_930x_reset(struct mii_bus *bus)
                switch (priv->interfaces[i]) {
                case PHY_INTERFACE_MODE_10GBASER:
                        break;                  /* Serdes: Value = 0 */
-               case PHY_INTERFACE_MODE_HSGMII:
-                       private_poll_mask |= BIT(i);
-                       fallthrough;
                case PHY_INTERFACE_MODE_USXGMII:
                        v |= BIT(mac_type_bit[i]);
                        uses_usxgmii = true;
index 8e1abef20e30357353d55aa6a901e4eda4ad2e17..ec1e24d749b4d1522bfde7e4d67052136bae28a3 100644 (file)
@@ -75,7 +75,6 @@ extern int rtmdio_931x_write_sds_phy_new(int sds, int page, int regnum, u16 val)
 #define RTL930X_SDS_MODE_1000BASEX     0x04
 #define RTL930X_SDS_MODE_USXGMII       0x0d
 #define RTL930X_SDS_MODE_XGMII         0x10
-#define RTL930X_SDS_MODE_HSGMII                0x12
 #define RTL930X_SDS_MODE_2500BASEX     0x16
 #define RTL930X_SDS_MODE_10GBASER      0x1a
 #define RTL930X_SDS_OFF                        0x1f
@@ -1268,8 +1267,7 @@ static int rtsds_930x_config_pll(int sds, phy_interface_t interface)
        if ((interface == PHY_INTERFACE_MODE_1000BASEX) ||
            (interface == PHY_INTERFACE_MODE_SGMII))
                speed = RTSDS_930X_PLL_1000;
-       else if ((interface == PHY_INTERFACE_MODE_2500BASEX) ||
-                (interface == PHY_INTERFACE_MODE_HSGMII))
+       else if (interface == PHY_INTERFACE_MODE_2500BASEX)
                speed = RTSDS_930X_PLL_2500;
        else if (interface == PHY_INTERFACE_MODE_10GBASER)
                speed = RTSDS_930X_PLL_10000;
@@ -1350,9 +1348,6 @@ static void rtsds_930x_force_mode(int sds, phy_interface_t interface)
        case PHY_INTERFACE_MODE_SGMII:
                mode = RTL930X_SDS_MODE_SGMII;
                break;
-       case PHY_INTERFACE_MODE_HSGMII:
-               mode = RTL930X_SDS_MODE_HSGMII;
-               break;
        case PHY_INTERFACE_MODE_1000BASEX:
                mode = RTL930X_SDS_MODE_1000BASEX;
                break;
@@ -1409,7 +1404,6 @@ static void rtl9300_sds_tx_config(int sds, phy_interface_t phy_if)
                post_amp = 0x1;
                page = 0x25;
                break;
-       case PHY_INTERFACE_MODE_HSGMII:
        case PHY_INTERFACE_MODE_2500BASEX:
                pre_amp = 0;
                post_amp = 0x8;
@@ -2772,7 +2766,6 @@ static int rtl931x_sds_cmu_page_get(phy_interface_t mode)
        case PHY_INTERFACE_MODE_SGMII:
        case PHY_INTERFACE_MODE_1000BASEX:      /* MII_1000BX_FIBER / 100BX_FIBER / 1000BX100BX_AUTO */
                return 0x24;
-       case PHY_INTERFACE_MODE_HSGMII:
        case PHY_INTERFACE_MODE_2500BASEX:      /* MII_2500Base_X: */
                return 0x28;
 /*     case MII_HISGMII_5G: */
@@ -2818,11 +2811,6 @@ static void rtl931x_cmu_type_set(u32 sds, phy_interface_t mode, int chiptype)
                frc_cmu_spd = 0;
                break;
 
-       case PHY_INTERFACE_MODE_HSGMII:
-               cmu_type = 1;
-               frc_cmu_spd = 1;
-               break;
-
        case PHY_INTERFACE_MODE_1000BASEX:
                cmu_type = 1;
                frc_cmu_spd = 0;
@@ -2927,9 +2915,6 @@ static void rtl931x_sds_mii_mode_set(u32 sds, phy_interface_t mode)
        case PHY_INTERFACE_MODE_2500BASEX:
                val = 0xD;
                break;
-       case PHY_INTERFACE_MODE_HSGMII:
-               val = 0x12;
-               break;
        case PHY_INTERFACE_MODE_SGMII:
                val = 0x2;
                break;
@@ -3096,10 +3081,6 @@ void rtl931x_sds_init(u32 sds, phy_interface_t mode)
                rtl9310_sds_field_w_new(sds, 0x1f, 0x7, 10, 4, 0x7f);
                break;
 
-       case PHY_INTERFACE_MODE_HSGMII:
-               rtl9310_sds_field_w_new(sds, 0x101, 0x14, 8, 8, 1);
-               break;
-
        case PHY_INTERFACE_MODE_1000BASEX: /* MII_1000BX_FIBER */
                rtl9310_sds_field_w_new(sds, 0x103, 0x13, 15, 14, 0);
 
@@ -3149,7 +3130,6 @@ void rtl931x_sds_init(u32 sds, phy_interface_t mode)
 
        if (mode == PHY_INTERFACE_MODE_XGMII ||
            mode == PHY_INTERFACE_MODE_QSGMII ||
-           mode == PHY_INTERFACE_MODE_HSGMII ||
            mode == PHY_INTERFACE_MODE_SGMII ||
            mode == PHY_INTERFACE_MODE_USXGMII) {
                if (mode == PHY_INTERFACE_MODE_XGMII)