[PATCH net-next v4 00/23] net: add EEE support for KSZ9477 and AR8035 with i.MX6

From: Oleksij Rempel
Date: Wed Feb 01 2023 - 09:59:26 EST


changes v4:
- remove following helpers:
mmd_eee_cap_to_ethtool_sup_t
mmd_eee_adv_to_ethtool_adv_t
ethtool_adv_to_mmd_eee_adv_t
and port drivers from this helpers to linkmode helpers.
- rebase against latest net-next
- port phy_init_eee() to genphy_c45_eee_is_active()

changes v3:
- rework some parts of EEE infrastructure and move it to c45 code.
- add supported_eee storage and start using it in EEE code and by the
micrel driver.
- add EEE support for ar8035 PHY
- add SmartEEE support to FEC i.MX series.

changes v2:
- use phydev->supported instead of reading MII_BMSR regiaster
- fix @get_eee > @set_eee

With this patch series we provide EEE control for KSZ9477 family of switches and
AR8035 with i.MX6 configuration.
According to my tests, on a system with KSZ8563 switch and 100Mbit idle link,
we consume 0,192W less power per port if EEE is enabled.

Oleksij Rempel (23):
net: dsa: microchip: enable EEE support
net: phy: add genphy_c45_read_eee_abilities() function
net: phy: micrel: add ksz9477_get_features()
net: phy: export phy_check_valid() function
net: phy: add genphy_c45_ethtool_get/set_eee() support
net: phy: c22: migrate to genphy_c45_write_eee_adv()
net: phy: c45: migrate to genphy_c45_write_eee_adv()
net: phy: migrate phy_init_eee() to genphy_c45_eee_is_active()
net: phy: start using genphy_c45_ethtool_get/set_eee()
net: phy: add driver specific get/set_eee support
net: phy: at803x: implement ethtool access to SmartEEE functionality
net: phy: at803x: ar8035: fix EEE support for half duplex links
net: phy: add PHY specifica flag to signal SmartEEE support
net: phy: at803x: add PHY_SMART_EEE flag to AR8035
net: phy: add phy_has_smarteee() helper
net: fec: add support for PHYs with SmartEEE support
e1000e: replace EEE ethtool helpers to linkmode variants
igb: replace EEE ethtool helpers to linkmode variants
igc: replace EEE ethtool helpers to linkmode variants
tg3: replace EEE ethtool helpers to linkmode variants
r8152: replace EEE ethtool helpers to linkmode variants
net: usb: ax88179_178a: replace EEE ethtool helpers to linkmode
variants
net: mdio: drop EEE ethtool helpers in favor to linkmode variants

drivers/net/dsa/microchip/ksz_common.c | 66 ++++
drivers/net/ethernet/broadcom/tg3.c | 9 +-
drivers/net/ethernet/freescale/fec_main.c | 22 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 16 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 23 +-
drivers/net/ethernet/intel/igc/igc_ethtool.c | 12 +-
drivers/net/phy/at803x.c | 142 ++++++++-
drivers/net/phy/micrel.c | 21 ++
drivers/net/phy/phy-c45.c | 298 ++++++++++++++++++-
drivers/net/phy/phy.c | 155 ++--------
drivers/net/phy/phy_device.c | 26 +-
drivers/net/usb/ax88179_178a.c | 24 +-
drivers/net/usb/r8152.c | 34 ++-
include/linux/mdio.h | 136 ++++-----
include/linux/phy.h | 28 ++
include/uapi/linux/mdio.h | 8 +
16 files changed, 760 insertions(+), 260 deletions(-)

--
2.30.2