mbox series

[net-next,v3,00/15] net: add EEE support for KSZ9477 and AR8035 with i.MX6

Message ID 20230130080714.139492-1-o.rempel@pengutronix.de (mailing list archive)
Headers show
Series net: add EEE support for KSZ9477 and AR8035 with i.MX6 | expand

Message

Oleksij Rempel Jan. 30, 2023, 8:06 a.m. UTC
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 (15):
  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: 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

 drivers/net/dsa/microchip/ksz_common.c    |  66 ++++++
 drivers/net/ethernet/freescale/fec_main.c |  22 +-
 drivers/net/phy/at803x.c                  | 142 +++++++++++-
 drivers/net/phy/micrel.c                  |  21 ++
 drivers/net/phy/phy-c45.c                 | 255 +++++++++++++++++++++-
 drivers/net/phy/phy.c                     |  66 +-----
 drivers/net/phy/phy_device.c              |  26 ++-
 include/linux/mdio.h                      |  53 +++++
 include/linux/phy.h                       |  26 +++
 include/uapi/linux/mdio.h                 |   8 +
 10 files changed, 615 insertions(+), 70 deletions(-)