]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: pcs: rtl931x: config CMU before media
authorJonas Jelonek <jelonek.jonas@gmail.com>
Mon, 2 Feb 2026 22:48:04 +0000 (22:48 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 7 Feb 2026 23:35:19 +0000 (00:35 +0100)
Currently, the CMU is configured after media specific settings have been
set. This seems to work however does not make that much sense. The
proper clock should be configured before the TX/RX channels are
configured. Thus, move the call to the CMU configuration above the media
handling.

While at it, handle the return code of the CMU config properly.

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

index d1997b7a09c05a6841805a8eeb1b96aafb4ee62a..58e64a5713480a0540f256b8a532416da2ae2828 100644 (file)
@@ -3620,6 +3620,10 @@ static int rtpcs_931x_setup_serdes(struct rtpcs_serdes *sds,
        if (ret < 0)
                return ret;
 
+       ret = rtpcs_931x_sds_config_cmu(sds, hw_mode);
+       if (ret < 0)
+               return ret;
+
        switch (hw_mode) {
        case RTPCS_SDS_MODE_OFF:
                ret = rtpcs_931x_sds_set_port_media(sds, RTPCS_PORT_MEDIA_NONE);
@@ -3638,8 +3642,6 @@ static int rtpcs_931x_setup_serdes(struct rtpcs_serdes *sds,
                break;
        }
 
-       rtpcs_931x_sds_config_cmu(sds, hw_mode);
-
        if (sds_id >= 2) {
                if (ctrl->chip_version == RTPCS_CHIP_V2)
                        /* consider 9311 etc. RTL9313_CHIP_ID == HWP_CHIP_ID(unit)) */