[PATCH net-next v10 07/15] ax88179_178a: Add EEE configuration support for AX88179A MACs

From: Birger Koblitz

Date: Fri Sep 04 2026 - 14:44:04 EST


The AX88179A uses a simple HW configuration for EEE
via a single EEE configuration register without LPI timer support
Add support for this EEE enable/disable register and replace the EEE.

Signed-off-by: Birger Koblitz <mail@xxxxxxxxxxxxxxxxx>
Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
---
drivers/net/usb/ax88179a_devices.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/drivers/net/usb/ax88179a_devices.c b/drivers/net/usb/ax88179a_devices.c
index c1646c63b0785db15506f488580779ac0a087a6a..6cd9bd6197280e8cf56295b8de4f6a19112092c5 100644
--- a/drivers/net/usb/ax88179a_devices.c
+++ b/drivers/net/usb/ax88179a_devices.c
@@ -384,10 +384,27 @@ static void ax88179a_mac_link_up(struct phylink_config *config,
ax88179_write_cmd(dev, AX_ACCESS_MAC, AX88179A_MAC_PATH, 1, 1, &tmp8);
}

+static void ax88179a_mac_disable_tx_lpi(struct phylink_config *config)
+{
+ struct usbnet *dev = netdev_priv(to_net_dev(config->dev));
+
+ ax88179_write_cmd(dev, AX_GPHY_CTL, AX_GPHY_EEE_CTRL, false, 0, NULL);
+}
+
+static int ax88179a_mac_enable_tx_lpi(struct phylink_config *config, u32 timer, bool tx_clk_stop)
+{
+ struct usbnet *dev = netdev_priv(to_net_dev(config->dev));
+
+ /* AX88179A does not provide LPI timer registers */
+ return ax88179_write_cmd(dev, AX_GPHY_CTL, AX_GPHY_EEE_CTRL, true, 0, NULL);
+}
+
static const struct phylink_mac_ops ax88179a_phylink_mac_ops = {
.mac_config = ax88179a_mac_config,
.mac_link_down = ax88179a_mac_link_down,
.mac_link_up = ax88179a_mac_link_up,
+ .mac_disable_tx_lpi = ax88179a_mac_disable_tx_lpi,
+ .mac_enable_tx_lpi = ax88179a_mac_enable_tx_lpi,
};

static int ax88179a_phylink_setup(struct usbnet *dev)

--
2.47.3