1
0
Fork 0
forked from mirror/openwrt
openwrt/target/linux
Jonas Jelonek 203b8886bd realtek: pcs: rtl93xx: fix SerDes polarity configuration for RTL931X
Commit 56e9a73d0b added support for configuring the SerDes polarity for
both RTL930X and RTL931X. Based on the code in the Realtek SDK in [1]
and [2], in both cases the same register bits are set. Thus, a common
implementation was provided which worked with e.g. USXGMII or 10GBase-R
configured SerDes.

However, after further tests, a strange issue occured where it didn't
work that well for all SerDes configurations. While running fine for
10GBase-R links on two adjacent SerDes, it didn't for 1000Base-X links
on one of two adjacent SerDes with the link not being detected as a
symptom.

Diving into the SDK again revealed that the referenced implementation of
polarity configuration is (by accident or by purpose) misleading. While
[1] and [3] for RTL930X match, [2] and [4] for RTL931X actually don't.
[4] writes the bits for the 1G polarity setting on different background
SerDes, thus in another frontend page.

Split implementations for RTL930X and RTL931X again and adjust the one
for RTL931X according to [4]. This resolves the issues with 1000Base-X
behavior.

[1] 69d2890a2e/sources/rtk-xgs1210/src/hal/phy/phy_rtl9300.c (L1384)
[2] 69d2890a2e/sources/rtk-xgs1210/src/hal/phy/phy_rtl9310.c (L3479)
[3] 69d2890a2e/sources/rtk-xgs1210/src/dal/longan/dal_longan_construct.c (L2246)
[4] 69d2890a2e/sources/rtk-xgs1210/src/dal/mango/dal_mango_construct.c (L1550)

Fixes: 56e9a73d0b ("realtek: pcs: rtl93xx: provide proper SerDes polarity
configuration")
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20767
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-11-15 11:16:20 +01:00
..
airoha airoha: replace AN7583 pinctrl patch with upstream version 2025-11-11 17:20:13 +01:00
apm821xx apm821xx: dts: explicitly set the partition reg size for Netgear WNDR4700 2025-10-19 21:55:33 +02:00
armsr armsr: Make kernel modules depend on target 2025-07-26 01:11:21 +02:00
at91 treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
ath79 ath79: fix MAC addresses on MikroTik RB962UiGS-5HacT2HnT 2025-11-15 11:15:29 +01:00
bcm27xx kernel: bump 6.12 to 6.12.56 2025-11-06 22:06:54 +01:00
bcm47xx bcm47xx: fix no previous prototype error 2025-11-05 08:39:07 +01:00
bcm53xx bcm53xx: use -ENOENT error for TRX parser workaround patch 2025-11-09 12:58:23 +01:00
bcm4908 bcm63xx-cfe: install into image staging dir 2025-04-13 10:44:19 +02:00
bmips bmips: fix leds on f@st3864op 2025-10-26 22:53:11 +01:00
d1 kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
econet kernel: bump 6.12 to 6.12.52 2025-10-22 23:35:45 +02:00
gemini gemini: Add module for VSC73xx switches 2025-09-15 23:12:56 +02:00
generic kernel: mtk_eth_soc: fix encapsulation check for GSO fraglist packets 2025-11-13 14:24:38 +01:00
imx kernel: bump 6.6 to 6.6.103 2025-09-01 02:05:24 +02:00
ipq40xx ipq40xx: fix unit-address of Netgear LBR20 ubi partition 2025-11-11 10:34:47 +01:00
ipq806x ipq806x: drop support for kernel 6.6 2025-11-04 19:31:07 +01:00
ixp4xx ixp4xx: Add back Actiontec MI424WR A/C/D 2025-09-26 23:40:40 +02:00
kirkwood kirkwood: kernel: remove 6.6 version support 2025-11-09 22:55:44 +01:00
lantiq kernel: bump 6.12 to 6.12.55 2025-10-25 01:08:12 +02:00
layerscape layerscape: remove 6.6 kernel files 2025-11-04 23:19:28 +01:00
loongarch64 loongarch64: switch to Linux 6.12 by default 2025-09-09 00:10:31 +02:00
malta malta: drop 6.6 support 2025-07-20 23:37:37 +02:00
mediatek mediatek: add mt7987-2p5g-phy-firmware to MT7987 devices 2025-11-14 02:25:15 +00:00
mpc85xx mpc85xx: make kernel 6.12 the default kernel 2025-11-12 19:38:29 +01:00
mvebu kernel: bump 6.12 to 6.12.54 2025-10-22 23:37:13 +02:00
mxs mxs: drop 6.6 support 2025-05-24 16:15:53 +02:00
octeon treewide: replace numbers with GPIO_ACTIVE 2025-10-08 14:26:24 +02:00
omap omap: enable 6.12 testing kernel 2025-08-22 20:18:16 +02:00
pistachio treewide: reset-gpio to reset-gpios 2025-10-08 14:26:24 +02:00
qoriq qoriq: dts: add missing reg property for WatchGuard Firebox M300 2025-10-19 21:55:34 +02:00
qualcommax qualcommax: ipq50xx: Add support for CMCC PZ-L8 2025-11-12 14:34:07 +01:00
qualcommbe qualcommbe: support 10g-qxgmii in QCA8084 PHY driver 2025-11-11 17:21:54 +01:00
ramips ramips: mt7621: add support for Cudy AP1300 Outdoor v1 2025-11-09 18:00:18 +01:00
realtek realtek: pcs: rtl93xx: fix SerDes polarity configuration for RTL931X 2025-11-15 11:16:20 +01:00
rockchip rockchip: add missing KERNEL_LOADADDR for LinkEase EasePi R1 2025-11-11 00:11:16 +01:00
sifiveu kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
siflower generic: backport phylink patches for PCS/PHY caps OPs 2025-10-22 12:29:41 +02:00
starfive kernel: bump 6.12 to 6.12.56 2025-11-06 22:06:54 +01:00
stm32 stm32: drop kernel 6.6 support 2025-10-22 14:56:15 +02:00
sunxi sunxi: cortexa53: refresh kernel config 2025-10-20 00:48:11 +02:00
tegra tegra: promote kernel 6.12 as default 2025-11-11 21:23:14 +01:00
uml kernel: bump 6.12 to 6.12.33 2025-06-12 12:42:15 +02:00
x86 x86/64: enable 8250_DW 2025-10-10 10:32:20 +02:00
zynq zynq: disable unused Vitesse PHY 2025-09-08 14:21:50 +02:00
Makefile linux: fix missing default packages in profiles.json 2024-11-17 19:29:06 +01:00