[PATCH net-next v4 00/12] ax88179_178a: Add support for AX88179A-based chips
From: Birger Koblitz <hidden>
Date: 2026-07-31 16:19:05
Also in:
linux-usb, lkml
This adds support for the current generation of ASIX network adapter chips, which are based on the AX88179A. This includes the AX88179A/B (1GBit-PHY), AX88772D/E (100MBit) and AX88279 (2.5GBit). The AX179A-based chips all provide both a CDC-NCM compatible USB interface, and a proprietary vendor interface with more features. By default, the proprietary vendor interface is not active and Linux will load the CDC-NCM driver to support the devices. If the ax88179_178a module is configured by the OS to have precedence over CDC-NCM, then this driver will switch the device to use the vendor interface, and the device will be controlled by the ax88179_178a driver when the device is probed again after an automatic reset of the device bringing up the vendor interface. The following hardware was tested: Delock 66046 2.5GBit adapter (AX88279, FW: 1.2.0.0) TP-Link UE306 1GBit adapter (AX88179B, FW: 1.3.0.0) Renkforce RF-4708614 1GBit adapter (AX88179A, FW: 1.0.4.0) UGREEN CR110 100MBit adapter (AX88722E, FW: 1.3.0.0) The driver supports the following features - EEE - TCP segmentation offload - VLAN filtering/tagging offload (NETIF_F_HW_VLAN_CTAG_FILTER, NETIF_F_HW_VLAN_CTAG_RX/TX) - RX/TX checksum offload - FC/Pause configuration - EEPROM read access The code is based on the ASIX 4.1.0 out-of-tree driver published under the GPL,, the aqc111 driver which provides support for the AX88279A, and some tracing of USB-transfers of the Windows-driver. Signed-off-by: Birger Koblitz <redacted> Tested-by: Jianhui Xu <redacted> --- Changes in v4: - Split driver into library part and part2 for AX88179 and AX88179A-based controllers - Driver renamed ax88179 - Improved phylink use: use phylink standard functions for speed and EEE-settings, correct MAC capabilities, removed ax88179_status() irq-urb callback - Fixes in PHY driver for AX88179A integrated PHYs - Link to v3: https://lore.kernel.org/r/20260724-ax88179a-v3-0-bdde4f905883@birger-koblitz.de (local) Changes in v3: - Add PHY drivers for the PHYs of the AX88179A-based controllers - Use phylink for the AX88179A-based chips - Link to v2: https://lore.kernel.org/r/20260708-ax88179a-v2-0-0800fedb2e16@birger-koblitz.de (local) Changes in v2: - Correctly use net-next prefix - Fix compilation issue in HW support patch - Split MMD support patch into patches for EEE/new chip support - Do not use ADVERTISE_RESV but private flag definition - Fix pause configuration to keep track of settings when autoneg disabled - Fix issue with unitialized variable reported by kernel test robot [off-list ref] - Avoid white-space changes - Link to v1: https://lore.kernel.org/r/20260701-ax88179a-v1-0-13685df67515@birger-koblitz.de (local) --- Birger Koblitz (12): ax88179_178a: Fix endianness of pause watermark register ax88179_178a: Split driver into library and device specific code ax88179_178a: Add HW support for AX179A-based chips ax88179_178a: Add EEE configuration support for AX88179A MACs ax88179_178a: Add EEE configuration support for AX88179A PHYs ax88179_178a: Add VLAN offload support for AX88179A ax88179_178a: Add AX179A/AX279 multicast configuration ax88179_178a: Add Suspend/resume support for AX88179A/772D/279 ax88179_178a: Add ethtool get_drvinfo ax88179_178a: update driver information ax88179_178a: Add support for AX88179A/772D/279 EEPROM access ax88796b: Add support for AX88772D, AX88179A and AX88279 drivers/net/phy/ax88796b.c | 192 ++++++ drivers/net/usb/Kconfig | 9 +- drivers/net/usb/Makefile | 3 +- drivers/net/usb/ax88179_178a.c | 664 ++----------------- drivers/net/usb/ax88179_lib.c | 508 +++++++++++++++ drivers/net/usb/ax88179_lib.h | 357 +++++++++++ drivers/net/usb/ax88179a_devices.c | 1245 ++++++++++++++++++++++++++++++++++++ 7 files changed, 2355 insertions(+), 623 deletions(-) --- base-commit: 1a9edf8be190decb17227e3cba540513d93ebb85 change-id: 20260630-ax88179a-a1d89fe21730 Best regards, -- Birger Koblitz [off-list ref]