[PATCH net-next 0/9] net: dsa: vsc73xx: fix MDIO bus access and PHY operations

From: Pawel Dembicki
Date: Mon Jul 29 2024 - 17:06:39 EST


The VSC73xx driver has issues with PHY configuration. This patch series
fixes most of them.

The first patch fixes the phylink capabilities, because the MAC in the
vsc73xx family doesn't handle 1000BASE HD mode.

The second patch synchronizes the register configuration routine with the
datasheet recommendations.

Patches 3-5 restore proper communication on the MDIO bus. Currently,
the write value isn't sent to the MDIO register, and without a mutex,
communication with the PHY can be interrupted. This causes the PHY to
receive improper configuration and autonegotiation could fail.

The sixth patch speeds up the internal MDIO bus to the maximum value
allowed by the datasheet.

The seventh patch removes the PHY reset blockade, as it is no longer
required.

After fixing the MDIO operations, autonegotiation became possible.
The eighth patch removes the blockade, which became unnecessary after
the MDIO operations fix. It also enables the MDI-X feature, which is
disabled by default in forced 100BASE-TX mode like other Vitesse PHYs.

The last patch implements the downshift feature and enables it by default.

Pawel Dembicki (9):
net: dsa: vsc73xx: fix phylink capabilities
net: dsa: vsc73xx: fix port MAC configuration in full duplex mode
net: dsa: vsc73xx: pass value in phy_write operation
net: dsa: vsc73xx: use defined values in phy operations
net: dsa: vsc73xx: use mutex to mdio operations
net: dsa: vsc73xx: speed up mdio bus to max allowed value
net: dsa: vsc73xx: allow phy resetting
net: phy: vitesse: repair vsc73xx autonegotiation
net: phy: vitesse: implement downshift in vsc73xx phys

drivers/net/dsa/vitesse-vsc73xx-core.c | 132 ++++++++++++++++++-------
drivers/net/dsa/vitesse-vsc73xx.h | 2 +
drivers/net/phy/vitesse.c | 125 +++++++++++++++++++++--
3 files changed, 219 insertions(+), 40 deletions(-)

--
2.34.1