Subject: [PATCH net-next 00/15] Realtek RTL822x PHY rework to c45 and SerDes interface switching

From: Marek Behún <[email-masked]>
Date: Wed, 20 Dec 2023 16:55:03 +0100

Hi,

this series reworks the realtek PHY driver's support for rtl822x
2.5G transceivers:

- First I change the driver so that the high level driver methods
  only use clause 45 register accesses (the only clause 22 accesses
  are left when accessing c45 registers indirectly, if the MDIO bus
  does not support clause 45 accesses).
  The driver starts using the genphy_c45_* methods.

  At this point the driver is ready to be used on a MDIO bus capable
  of only clause 45 accesses, but will still work on clause 22 only
  MDIO bus.

- I then add support for SerDes mode switching between 2500base-x
  and sgmii, based on autonegotiated copper speed.

All this is done so that we can support another 2.5G copper SFP
module, which is enabled by the last patch.

Marek

Alexander Couzens (1):
  net: phy: realtek: configure SerDes mode for rtl822x PHYs

Marek Behún (14):
  net: phy: fail early with error code if indirect MMD access fails
  net: phy: export indirect MMD register accessors
  net: phy: realtek: rework MMD register access methods
  net: phy: realtek: fill .read_mmd and .write_mmd methods for all
    rtl822x PHYs
  net: mdio: add 2.5g and 5g related PMA speed constants
  net: phy: realtek: use generic MDIO constants
  net: phy: realtek: set is_c45 and fill in c45 IDs in PHY probe for
    rtl822x PHYs
  net: phy: realtek: use generic clause 45 feature reading for rtl822x
    PHYs
  net: phy: realtek: read standard MMD register for rtlgen speed
    capability
  net: phy: realtek: use generic c45 AN config with 1000baseT vendor
    extension for rtl822x
  net: phy: realtek: use generic c45 status reading with 1000baseT
    vendor extension for rtl822x
  net: phy: realtek: use generic c45 suspend/resume for rtl822x
  net: phy: realtek: drop .read_page and .write_page for rtl822x series
  net: sfp: add quirk for another multigig RollBall transceiver

 drivers/net/phy/phy-core.c |  54 ++++--
 drivers/net/phy/realtek.c  | 343 ++++++++++++++++++++++---------------
 drivers/net/phy/sfp.c      |   1 +
 include/linux/phy.h        |  10 ++
 include/uapi/linux/mdio.h  |   2 +
 5 files changed, 257 insertions(+), 153 deletions(-)

-- 
2.41.0