summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Jelonek2026-01-02 18:50:10 +0000
committerHauke Mehrtens2026-01-03 15:59:48 +0000
commitb63f68e409f2ec2ab04d84bf6bb4bcad3776d089 (patch)
tree5d0410b92e3c038183ca5b9a5831544cb5a8a2b8
parent7cd3407fdef67e4922f73df327c97bb0a2c679e5 (diff)
downloadopenwrt-b63f68e409f2ec2ab04d84bf6bb4bcad3776d089.tar.gz
realtek: pcs: select OFF mode with no links on SerDes
Because the PCS driver keeps track of the number of registered links for each SerDes now, we now know when there is no link on a SerDes. In this case, determine to turn off the SerDes in the mode mapper. Though the phylink subsystem shouldn't attempt to config something different when no link/port references a Serdes, be on the safe side. Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com> Link: https://github.com/openwrt/openwrt/pull/21365 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c
index bd19bd5fb2..06647938d2 100644
--- a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c
+++ b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c
@@ -287,6 +287,12 @@ static int rtpcs_sds_determine_hw_mode(struct rtpcs_serdes *sds,
{
u8 n_links = sds->num_of_links;
+ /* turn off SerDes when there are no links */
+ if (!n_links) {
+ *hw_mode = RTPCS_SDS_MODE_OFF;
+ return 0;
+ }
+
switch (if_mode) {
case PHY_INTERFACE_MODE_NA:
*hw_mode = RTPCS_SDS_MODE_OFF;