]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: rtl931x: Fix SDS field modifications
authorHarshal Gohel <hg@simonwunderlich.de>
Mon, 14 Jul 2025 09:35:00 +0000 (11:35 +0200)
committerRobert Marko <robimarko@gmail.com>
Wed, 30 Jul 2025 10:48:26 +0000 (12:48 +0200)
A RTL930x function to read the value from an SDS register must not used on
an RTL931x SoC. Doing it with rtl930x_read_sds_phy() would corrupt the
written results when only parts of the bits are written.

Fixes: 7026084066fb ("realtek: Add SDS configuration routines for the RTL93XX platforms")
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/19603
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c

index 439ba9aa37a8dafe2a7811aa4a90d095fdbe60da..65e7e12117ec2d8be501c60a9135acc8d0132578 100644 (file)
@@ -3048,7 +3048,7 @@ static void rtl9310_sds_field_w(int sds, u32 page, u32 reg, int end_bit, int sta
        if (l < 32) {
                u32 mask = BIT(l) - 1;
 
-               data = rtl930x_read_sds_phy(sds, page, reg);
+               data = rtl931x_read_sds_phy(sds, page, reg);
                data &= ~(mask << start_bit);
                data |= (v & mask) << start_bit;
        }