diff --git a/README.md b/README.md index 2ee22d6..8417a52 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,15 @@ This driver supports AIC8800-family chipsets used by devices such as the Tenda U Added support for devices with Vendor ID 368B (tested). +> [!NOTE] +> **Tested `2357:0147` hardware (this branch):** TP-Link AIC8800DC USB WiFi, +> `chip_id=7`, `chip_sub_id=1`, `chip_mcu_id=1` (MCU revision of *this unit*, +> readback `0x40500000 = 0x09078818`; firmware `zh Aug 08 2022 … gcf79227`). +> The USB-ID entry itself is MCU-revision-agnostic (routing to the DC path; +> mcu gating happens at runtime), but **other units sold under the same +> VID/PID may be a different MCU revision** — check the driver log against +> the branch-selection note above. + Tested on Linux kernel 6.16 with Ubuntu 25.04 and 6.1.0.27 with Debian 12. The same driver supports Wi-Fi-only adapters and Wi-Fi/Bluetooth combo diff --git a/drivers/aic8800/aic8800_fdrv/aicwf_usb.c b/drivers/aic8800/aic8800_fdrv/aicwf_usb.c index c25171b..2fa52bd 100644 --- a/drivers/aic8800/aic8800_fdrv/aicwf_usb.c +++ b/drivers/aic8800/aic8800_fdrv/aicwf_usb.c @@ -2367,6 +2367,10 @@ static int aicwf_usb_chipmatch(struct aic_usb_dev *usb_dev, u16_l vid, u16_l pid } AICWFDBG(LOGINFO, "%s USE AIC8800D89X2\r\n", __func__); return 0; + } else if (pid == USB_PRODUCT_ID_TP_AIC8800DC) { + usb_dev->chipid = PRODUCT_ID_AIC8800DC; + AICWFDBG(LOGINFO, "%s USE AIC8800DC (TP-Link 0x0147)\r\n", __func__); + return 0; } else if ((pid == USB_PRODUCT_ID_AIC8800D80N) || (pid == USB_PRODUCT_ID_AIC8800D80LN) || (pid == USB_PRODUCT_ID_AIC8800D80WN) || @@ -2680,6 +2684,7 @@ static struct usb_device_id aicwf_usb_id_table[] = { {USB_DEVICE(USB_VENDOR_ID_AIC_V2, USB_PRODUCT_ID_AIC8800M80_CUS8)}, {USB_DEVICE(USB_VENDOR_ID_AIC_V2, USB_PRODUCT_ID_AIC8800D80_UGREEN)}, {USB_DEVICE(USB_VENDOR_ID_TP, USB_PRODUCT_ID_MERCURY)}, + {USB_DEVICE(USB_VENDOR_ID_TP, USB_PRODUCT_ID_TP_AIC8800DC)}, {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_TP, USB_PRODUCT_ID_TP, 0xff, 0xff, 0xff)}, #endif {} diff --git a/drivers/aic8800/aic8800_fdrv/aicwf_usb.h b/drivers/aic8800/aic8800_fdrv/aicwf_usb.h index 0ed15f0..9076fd0 100644 --- a/drivers/aic8800/aic8800_fdrv/aicwf_usb.h +++ b/drivers/aic8800/aic8800_fdrv/aicwf_usb.h @@ -24,6 +24,7 @@ #define USB_PRODUCT_ID_TP 0x014e #define USB_PRODUCT_ID_MERCURY 0x014b #define USB_PRODUCT_ID_FAST 0x014f +#define USB_PRODUCT_ID_TP_AIC8800DC 0x0147 #define USB_PRODUCT_ID_TENDA_U11 0x001f #define USB_PRODUCT_ID_TENDA_U11_PRO 0x0020