realtek: pcs: rtl930x: reconfigure PLL of neighbor SerDes when needed
authorJan Hoffmann <[email protected]>
Mon, 27 Oct 2025 17:50:57 +0000 (18:50 +0100)
committerRobert Marko <[email protected]>
Fri, 7 Nov 2025 11:22:45 +0000 (12:22 +0100)
commit23c01459631b2babffd5f408624d25a5e99f40ba
treeabc488d32daddde540aff56668d14be329602f3d
parent099633be82ee8a75a2f271b90f3a07e6e2c01ffc
realtek: pcs: rtl930x: reconfigure PLL of neighbor SerDes when needed

On RTL930x, each SerDes pair shares a set of PLLs with different
capabilities (LC PLL: 1G/2.5G/10G, ring PLL: 1G/2.5G). In principle,
this allows any combination of speeds on a SerDes pair. However, it
creates a special case when trying to configure a SerDes for 10G while
the LC PLL is already in use at a slower speed for the neighbor SerDes.
The current implementation just gives up in that case. Instead, free up
the LC PLL by reconfiguring the neighbor SerDes to the ring PLL.

Signed-off-by: Jan Hoffmann <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20568
Signed-off-by: Robert Marko <[email protected]>
target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c