Skip to content

Commit f8feda8

Browse files
committed
realtek: pcs: rtl838x: drop redundant reset writes
Sometimes redundancy is so obvious that one likely misses it. Trying to bring all SerDes setup into a unified shape, one thinks twice if something is really needed or not. For the RTL838x case, the single writes for take/release reset were still an outlier. Looking closer at them one can see that the same bits are all covered already in deactivate/activate. So before, they have been put into the desired state but those outlier writes mess with them again. [0, 3, 0x7146/0x7106] just deals with the SOFT_RST bit that is already covered by rtpcs_838x_sds_reset. [0, 0, 0xc00] touches multiple bits, amongst the EN_RX/EN_TX bits already covered in deactivate/active. Moreover, it potentially forces other bits into a state causing broken functionality, e.g. INV_HSI/INV_HSO which deal with the polarity. This has no effect right no right now but might be a latent issue in the future. Also move the reset call down to the end of the function, doing a soft/RX reset after every configuration is done. This is likely what the SDK also intended, and mirrors the 839x behavior. Link: openwrt/openwrt#23746 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
1 parent 541d216 commit f8feda8

1 file changed

Lines changed: 1 addition & 7 deletions

File tree

target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -890,21 +890,15 @@ static int rtpcs_838x_setup_serdes(struct rtpcs_serdes *sds,
890890

891891
rtpcs_838x_sds_deactivate(sds);
892892

893-
/* take reset */
894-
rtpcs_sds_write(sds, 0x0, 0x0, 0xc00);
895-
rtpcs_sds_write(sds, 0x0, 0x3, 0x7146);
896-
897893
rtpcs_838x_sds_patch(sds, hw_mode);
898-
rtpcs_838x_sds_reset(sds);
899894

900895
ret = rtpcs_838x_sds_set_mode(sds, hw_mode);
901896
if (ret)
902897
return ret;
903898

904899
sds->hw_mode = hw_mode;
905900

906-
/* release reset */
907-
rtpcs_sds_write(sds, 0, 3, 0x7106);
901+
rtpcs_838x_sds_reset(sds);
908902

909903
rtpcs_838x_sds_activate(sds);
910904

0 commit comments

Comments
 (0)