[PATCH net-next 0/8] Improvements for RealTek 2.5G Ethernet PHYs

From: Daniel Golle
Date: Wed May 10 2023 - 18:55:23 EST


Improve support for RealTek 2.5G Ethernet PHYs (RTL822x series).
The PHYs can operate with Clause-22 and Clause-45 MDIO.

When using Clause-45 it is desireable to avoid rate-adapter mode and
rather have the MAC interface mode follow the PHY speed. The PHYs
support 2500Base-X for 2500M, and Cisco SGMII for 1000M/100M/10M.

Also prepare support for proprietary RealTek HiSGMII mode which will
be needed for situations when used with RealTek switch or router SoCs
such as RTL839x or RTL93xx.

Add support for Link Down Power Saving Mode (ALDPS) which is already
supported for older RTL821x series 1GbE PHYs.

Make sure that link-partner advertised modes are only used if the
advertisement can be considered valid. Otherwise we are seeing
false-positives warning about downscaling eventhough higher speeds
are not actually advertised by the link partner.

While at it, use helper function for paged operation and make sure
to use use locking for that as well.

Changes since RFC:
* Turns out paged read used to identify the PHY needs to be hardcoded
for the simple reason that the function pointers for paged operations
have not yet been populated at this point. Hence keep open-coding it,
but use helper function and make sure it happening while the MDIO bus
mutex is locked.

Alexander Couzens (1):
net: phy: realtek: rtl8221: allow to configure SERDES mode

Chukun Pan (1):
net: phy: realtek: switch interface mode for RTL822x series

Daniel Golle (6):
net: phy: realtek: use genphy_soft_reset for 2.5G PHYs
net: phy: realtek: disable SGMII in-band AN for 2.5G PHYs
net: phy: realtek: make sure paged read is protected by mutex
net: phy: realtek: use inline functions for 10GbE advertisement
net: phy: realtek: check validity of 10GbE link-partner advertisement
net: phy: realtek: setup ALDPS on RTL8221B

drivers/net/phy/realtek.c | 161 ++++++++++++++++++++++++++++++++------
1 file changed, 138 insertions(+), 23 deletions(-)

--
2.40.0