[net-next,v2,0/8] Make SmartEEE support controllable

Message ID 20230327142202.3754446-1-o.rempel@pengutronix.de
Headers
Series Make SmartEEE support controllable |

Message

Oleksij Rempel March 27, 2023, 2:21 p.m. UTC
  changes v2:
- handle lack of eee_get/set directly by the ethtool framework. This
  will avoid the need to patch all ethernet controller drivers.
- add mac_supports_eee and is_smart_eee_phy flags to indicate support
  of different levels.
- reword commit logs.
- add FEC patch to indicated EEE support for some SoCs

Some PHYs, such as the AR8035, provide so-called SmartEEE support, which
enables the use of EEE with MACs that lack native EEE capabilities,
particularly the LPI support. Since this functionality is usually
enabled by default, it may have a negative impact on certain use cases
(e.g., PTP) or even prevent the use of all link modes without PHY driver
assistance (e.g., a full range of half-duplex modes).

To address at least some of these issues, this patch series aims to pass
EEE ethtool access to PHY drivers, enabling them to control SmartEEE
support more effectively. The series consists of several patches that
improve EEE handling for specific PHYs and MACs, making it possible to
enable or disable SmartEEE functionality as needed, depending on the
specific use case and requirements. As a result, users will gain more
control and flexibility over energy-saving features and compatibility in
their networking setups.

Oleksij Rempel (8):
  net: phy: Add driver-specific get/set_eee support for non-standard
    PHYs
  net: phy: add is_smart_eee_phy variable for SmartEEE support
  net: phy: Add mac_supports_eee variable for EEE support and LPI
    handling
  ethtool: eee: Rework get/set handler for SmartEEE-capable PHYs with
    non-EEE MACs
  net: phy: at803x: Indicate SmartEEE support for AR8035 and AR8031 PHYs
  net: phy: at803x: Make SmartEEE support optional and configurable via
    ethtool
  net: phy: at803x: Fix SmartEEE support for some link configurations
  net: fec: Indicate EEE (LPI) support for some FEC Ethernet controllers

 drivers/net/ethernet/freescale/fec_main.c |   2 +
 drivers/net/phy/at803x.c                  | 158 +++++++++++++++++++++-
 drivers/net/phy/phy.c                     |  10 +-
 include/linux/phy.h                       |   9 ++
 net/ethtool/common.c                      |  38 ++++++
 net/ethtool/common.h                      |   2 +
 net/ethtool/eee.c                         |  17 ++-
 7 files changed, 221 insertions(+), 15 deletions(-)