[PATCH net-next v2 0/8] Make SmartEEE support controllable
From: Oleksij Rempel
Date: Mon Mar 27 2023 - 10:24:32 EST
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(-)
--
2.30.2