]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: pcs: rtl930x: classify SGMII as PHY-attached media
authorJonas Jelonek <jelonek.jonas@gmail.com>
Fri, 10 Jul 2026 13:36:19 +0000 (13:36 +0000)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Wed, 15 Jul 2026 17:36:59 +0000 (19:36 +0200)
SGMII always terminates in a PHY, whether on-board or embedded in an
SFP copper module, so it belongs with QSGMII/XSGMII/USXGMII rather
than the direct fiber/DAC modes. The PHY equalizes on its own far-end
receiver in either case, so no media-dependent TX tuning is needed.

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 16199f47fb0d033f681019499e23e741cb1c0533..201f45a4251e8bbf595510f050d04f26ad0ec72d 100644 (file)
@@ -581,13 +581,18 @@ static int rtpcs_sds_select_media(enum rtpcs_sds_mode hw_mode, enum rtpcs_sds_me
        case RTPCS_SDS_MODE_OFF:
                *media = RTPCS_SDS_MEDIA_NONE;
                break;
-       case RTPCS_SDS_MODE_SGMII:
        case RTPCS_SDS_MODE_1000BASEX:
        case RTPCS_SDS_MODE_2500BASEX:
        case RTPCS_SDS_MODE_10GBASER:
                *media = RTPCS_SDS_MEDIA_FIBER;
                break;
        default:
+               /*
+                * SGMII, QSGMII, XSGMII and USXGMII always run into a PHY, be
+                * it on-board or embedded in an SFP copper module; either way
+                * the SerDes-to-PHY trace is short and the PHY equalizes for
+                * itself on the far end.
+                */
                *media = RTPCS_SDS_MEDIA_PCB;
                break;
        }