1
1
openwrt/target/linux
Jonas Jelonek 383c4469e4
realtek: pcs: rtl930x: force IP mode OFF in deactivate, unforce for MAC modes
Make deactivate fully restore the SerDes to an inert state at both the
MAC and IP layers. Previously deactivate only zeroed the MAC mode via
set_mode(OFF), which on the default branch only writes the MAC mode
register and leaves the IP mode register untouched. The IP mode register
then retained whatever the previous bring-up left behind (force=1 with
a stale mode value, or force=0 from boot defaults), making "deactivate"
not fully deactivate the SerDes.

Replace the set_mode(OFF) call with explicit set_mac_mode(OFF) plus
set_ip_mode(OFF). The latter writes force=1 with mode=OFF, pinning the
IP block to OFF until a subsequent bring-up takes a defined action.

This forced-OFF state would break MAC-driven modes (USXGMII / QSGMII /
XSGMII), which set only the MAC mode register and rely on the IP block
following along. To compensate, add an explicit unforce of the IP mode
force-bit (page 0x1f reg 0x09 bit 6) at the start of the MAC-mode branch
of rtpcs_930x_sds_set_mode. IP-mode bring-up via apply_ip_mode is
unaffected -- it re-asserts force=1 with the target mode value, which
overrides the deactivate force-OFF.

Net result: deactivate fully and explicitly deactivates the SerDes; each
set_mode path takes its own responsibility for the IP mode register
state. The previous asymmetric behaviour (set_mode default branch silently
not touching the IP register) is now explicit code rather than an
implicit accident-of-dispatch.

Verified on RTL930x hardware: SGMII, 2500BASE-X, 10GBASE-R, USXGMII-QX
and XSGMII all bring up correctly with link, traffic and iperf3 as
expected.

Link: https://github.com/openwrt/openwrt/pull/23513
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-05-26 08:38:00 +02:00
..
airoha kernel: bump 6.12 to 6.12.91 2026-05-25 21:02:13 +02:00
apm821xx apm821xx: slightly improve routing performance 2026-05-25 10:16:50 +02:00
armsr armsr: enable 6.18 as a testing kernel 2026-05-25 22:12:04 +02:00
at91 kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
ath79 ath79: support Dragino LPS8 2026-05-26 00:01:39 +02:00
bcm27xx kernel: bump 6.12 to 6.12.91 2026-05-25 21:02:13 +02:00
bcm47xx bcm47xx: base-files: hack sysinfo to allow ASU sysupgrades 2026-05-25 23:27:34 +02:00
bcm53xx bcm53xx: enable 6.18 testing kernel 2026-05-24 20:36:09 +02:00
bcm4908 kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
bmips treewide: use _scoped for loop 2026-04-16 21:17:43 +02:00
d1 d1: drop support for 6.12 2026-04-21 16:13:37 +02:00
econet econet: add EN751627 subtarget and Zyxel EX3301-T0 board 2026-05-14 21:12:46 +02:00
gemini gemini/kernel: drop v6.12 and default to v6.18 2026-04-17 18:01:06 +02:00
generic generic: refresh patches 2026-05-25 21:49:16 +00:00
imx imx: cortexa9: ventana, fix profiles names in profiles.json 2026-04-23 01:13:36 +02:00
ipq40xx kernel: bump 6.18 to 6.18.33 2026-05-25 21:04:53 +02:00
ipq806x ipq806x: fix caldata loading for mr42/mr52 2026-05-18 21:14:22 +02:00
ixp4xx ixp4xx/kernel: drop v6.12 and default to v6.18 2026-04-16 08:35:38 +02:00
kirkwood kirkwood: switch to 6.18 kernel 2026-04-27 09:39:21 +02:00
lantiq kernel: bump 6.18 to 6.18.33 2026-05-25 21:04:53 +02:00
layerscape generic: 6.12: backport PCS standalone feature 2026-05-13 00:19:29 +02:00
loongarch64 loongarch64: add upstream dwmac-loongson patches for 2K3000/3B6000M 2026-05-26 00:58:05 +02:00
malta malta: drop 6.12 support 2026-05-07 18:15:54 +02:00
mediatek mediatek: add support for netis EAP930 V1 2026-05-26 00:50:00 +02:00
microchipsw kernel: sync target configs after JUMP_LABEL changes 2026-05-11 10:33:46 +02:00
mpc85xx mpc85xx: unify wrapper address of simple image devices 2026-05-05 14:09:38 +02:00
mvebu mvebu: add mwifiex sdio kernel module for Turris Mox 2026-05-26 01:36:23 +02:00
mxs mxs: drop support for 6.12 2026-04-16 14:55:36 +02:00
octeon octeon: drop v6.12 and default to v6.18 2026-05-23 19:13:22 +02:00
omap kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
pistachio pistachio: drop support for 6.12 2026-04-18 12:02:48 +02:00
qoriq qoriq: drop kernel config for 6.12 2026-05-24 23:43:54 +02:00
qualcommax kernel: bump 6.12 to 6.12.91 2026-05-25 21:02:13 +02:00
qualcommbe kernel: bump 6.12 to 6.12.88 2026-05-16 21:26:01 +02:00
ramips ramips: mt76x8: cudy-lt300-v3: fix backup partition offset 2026-05-25 22:58:00 +02:00
realtek realtek: pcs: rtl930x: force IP mode OFF in deactivate, unforce for MAC modes 2026-05-26 08:38:00 +02:00
rockchip rockchip: add support for FriendlyELEC NanoPi M5 2026-05-14 17:52:56 +02:00
sifiveu sifiveu: drop support for 6.12 2026-04-19 13:21:21 +02:00
siflower kernel: sync target configs after JUMP_LABEL changes 2026-05-11 10:33:46 +02:00
starfive kernel: bump 6.18 to 6.18.33 2026-05-25 21:04:53 +02:00
stm32 kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
sunxi sunxi: add T113-S3 support 2026-05-09 11:19:22 +02:00
tegra kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
uml kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
x86 x86: onie-installer: wire up sysupgrade via ONIE install mode 2026-05-23 17:23:54 +02:00
zynq kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic 2026-04-06 01:38:41 +02:00
Makefile linux: fix missing default packages in profiles.json 2024-11-17 19:29:06 +01:00