From: Markus Stockhausen Date: Wed, 10 Sep 2025 05:37:08 +0000 (-0400) Subject: realtek: drop usage of proprietary HSGMII mode X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=61b72cb736b8df5bb0008d8af3cd0dba19d1ebf0;p=openwrt%2Fstaging%2Fthess.git realtek: drop usage of proprietary HSGMII mode 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 Link: https://github.com/openwrt/openwrt/pull/20002 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c index 8829180585..144ed01c88 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c @@ -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) diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c index a30c681c9a..57be6ffa54 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c @@ -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); diff --git a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c index 6f3533cbbb..a1f5d2bf2c 100644 --- a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c +++ b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c @@ -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; diff --git a/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c b/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c index 8e1abef20e..ec1e24d749 100644 --- a/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c +++ b/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c @@ -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)