mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
107 lines
4.3 KiB
Diff
107 lines
4.3 KiB
Diff
From f60e434c0766aaf5db2d775bbcba49d896e1f518 Mon Sep 17 00:00:00 2001
|
|
From: Hector Martin <marcan@marcan.st>
|
|
Date: Mon, 2 May 2022 19:46:47 +0900
|
|
Subject: [PATCH 062/171] net: usb: ax88179_178a: Bind only to vendor-specific
|
|
interface
|
|
|
|
The Anker PowerExpand USB-C to Gigabit Ethernet adapter uses this
|
|
chipset, but exposes CDC Ethernet configurations as well as the
|
|
vendor specific one. This driver ends up binding first to both CDC
|
|
interfaces, tries to instantiate two Ethernet interfaces talking to
|
|
the same device, and the result is a nice fireworks show.
|
|
|
|
Change all the ID matches to specifically match the vendor-specific
|
|
interface. By default the device comes up in CDC mode and is bound by
|
|
that driver (which works fine); users may switch it to the vendor
|
|
interface using sysfs to set bConfigurationValue, at which point the
|
|
device actually goes through a reconnect cycle and comes back as a
|
|
vendor specific only device, and then this driver binds and works too.
|
|
|
|
The affected device uses VID/PID 0b95:1790, but we might as well change
|
|
all of them for good measure, since there is no good reason for this
|
|
driver to bind to standard CDC Ethernet interfaces.
|
|
|
|
v3: Added VID/PID info to commit message
|
|
|
|
Signed-off-by: Hector Martin <marcan@marcan.st>
|
|
---
|
|
drivers/net/usb/ax88179_178a.c | 26 +++++++++++++-------------
|
|
1 file changed, 13 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
|
|
index ac2d400d1d6c..aeb0294385ed 100644
|
|
--- a/drivers/net/usb/ax88179_178a.c
|
|
+++ b/drivers/net/usb/ax88179_178a.c
|
|
@@ -1965,55 +1965,55 @@ static const struct driver_info at_umc2000sp_info = {
|
|
static const struct usb_device_id products[] = {
|
|
{
|
|
/* ASIX AX88179 10/100/1000 */
|
|
- USB_DEVICE(0x0b95, 0x1790),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x0b95, 0x1790, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&ax88179_info,
|
|
}, {
|
|
/* ASIX AX88178A 10/100/1000 */
|
|
- USB_DEVICE(0x0b95, 0x178a),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x0b95, 0x178a, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&ax88178a_info,
|
|
}, {
|
|
/* Cypress GX3 SuperSpeed to Gigabit Ethernet Bridge Controller */
|
|
- USB_DEVICE(0x04b4, 0x3610),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x04b4, 0x3610, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&cypress_GX3_info,
|
|
}, {
|
|
/* D-Link DUB-1312 USB 3.0 to Gigabit Ethernet Adapter */
|
|
- USB_DEVICE(0x2001, 0x4a00),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x4a00, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&dlink_dub1312_info,
|
|
}, {
|
|
/* Sitecom USB 3.0 to Gigabit Adapter */
|
|
- USB_DEVICE(0x0df6, 0x0072),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x0df6, 0x0072, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&sitecom_info,
|
|
}, {
|
|
/* Samsung USB Ethernet Adapter */
|
|
- USB_DEVICE(0x04e8, 0xa100),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x04e8, 0xa100, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&samsung_info,
|
|
}, {
|
|
/* Lenovo OneLinkDock Gigabit LAN */
|
|
- USB_DEVICE(0x17ef, 0x304b),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x17ef, 0x304b, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&lenovo_info,
|
|
}, {
|
|
/* Belkin B2B128 USB 3.0 Hub + Gigabit Ethernet Adapter */
|
|
- USB_DEVICE(0x050d, 0x0128),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x050d, 0x0128, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&belkin_info,
|
|
}, {
|
|
/* Toshiba USB 3.0 GBit Ethernet Adapter */
|
|
- USB_DEVICE(0x0930, 0x0a13),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x0930, 0x0a13, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&toshiba_info,
|
|
}, {
|
|
/* Magic Control Technology U3-A9003 USB 3.0 Gigabit Ethernet Adapter */
|
|
- USB_DEVICE(0x0711, 0x0179),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x0711, 0x0179, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&mct_info,
|
|
}, {
|
|
/* Allied Telesis AT-UMC2000 USB 3.0/USB 3.1 Gen 1 to Gigabit Ethernet Adapter */
|
|
- USB_DEVICE(0x07c9, 0x000e),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x07c9, 0x000e, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&at_umc2000_info,
|
|
}, {
|
|
/* Allied Telesis AT-UMC200 USB 3.0/USB 3.1 Gen 1 to Fast Ethernet Adapter */
|
|
- USB_DEVICE(0x07c9, 0x000f),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x07c9, 0x000f, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&at_umc200_info,
|
|
}, {
|
|
/* Allied Telesis AT-UMC2000/SP USB 3.0/USB 3.1 Gen 1 to Gigabit Ethernet Adapter */
|
|
- USB_DEVICE(0x07c9, 0x0010),
|
|
+ USB_DEVICE_AND_INTERFACE_INFO(0x07c9, 0x0010, 0xff, 0xff, 0),
|
|
.driver_info = (unsigned long)&at_umc2000sp_info,
|
|
},
|
|
{ },
|
|
--
|
|
2.34.1
|
|
|