[PATCH net-next v2 00/10] net: phy: Add support for 2.5GBASET PHYs

From: Maxime Chevallier
Date: Thu Feb 07 2019 - 04:50:01 EST


Hello everyone,

This is the second iteration of the series introducing support for
2.5GBASET and 5GBASET to the network PHY infrastructure.

These 2 modes are described in the 802.3bz specifications, and allow to
use 2.5G and 5G speeds on cat5e/cat6 cables.

The required infrastructure code is added for 2.5GBASET and 5GBASET, but
only 2.5GBASET support is added to the Marvell10G driver. The reason is
because the 5GBASER interface mode used to communicate with the MAC
isn't implemented yet, and therefore this can't be tested.

This series has seen some rework since last time, see the full details
in the patches changelog. The main highlights are :

- Patch 1 moves the Pause ans Asym_Pause parameters update after
calling config_init. This allows us to change the phydev->supported
modes in config_init, while still forcing some quirks taken from
phydrv->features, to disable unsupported Pause modes. This was
proposed by Andrew.

- Patch 2 generalizes the way we mask-out modes we don't want to use
when forcing the link speed through DT or ethtool, by walking through
the PHY settings table, as proposed by Russell.

- Patch 4 implements automatic setting of TM, FIBRE and Backplane bits
from the list of supported linkmodes.

- In Patch 5, we only read abilities from the PMA. Pause parameters
aren't built from the genphy_c45_pma_read_abilities, as it was done
in the previous iteration of the patch. We also amke use of
linkmode_mod_bit to make sure we mask-out unsupported modes.

- In Patch 8, we manually check for the PMA device id to see if we have
to use a quirk when reading the 2.5G/5G Extended Abilities

Maxime Chevallier (10):
net: phy: Update PHY linkmodes after config_init
net: phy: Mask-out non-compatible modes when setting the max-speed
net: phy: Move of_set_phy_eee_broken to phy-core.c
net: phy: Automatically fill the generic TP, FIBRE and Backplane modes
net: phy: Extract genphy_c45_pma_read_abilities from marvell10g
net: phy: Add generic support for 2.5GBaseT and 5GBaseT
net: phy: marvell10g: Add support for 2.5GBASET
net: phy: marvell10g: Force reading of 2.5/5G
net: mvpp2: Add 2.5GBaseT support
net: phy: marvell10g: add support for the 88x2110 PHY

.../net/ethernet/marvell/mvpp2/mvpp2_main.c | 1 +
drivers/net/phy/marvell10g.c | 142 +++++------
drivers/net/phy/phy-c45.c | 111 ++++++++
drivers/net/phy/phy-core.c | 72 ++++++
drivers/net/phy/phy_device.c | 237 +++++++++---------
include/linux/linkmode.h | 6 +
include/linux/marvell_phy.h | 2 +
include/linux/phy.h | 3 +
include/uapi/linux/mdio.h | 16 ++
9 files changed, 405 insertions(+), 185 deletions(-)

--
2.19.2