r8152: The Microsoft Surface docks also use R8152 v2

Without this the generic cdc_ether grabs the device,
and does not really work.

Signed-off-by: René Rebe <rene@exactcode.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
René Rebe 2017-03-28 07:56:51 +02:00 committed by David S. Miller
parent 6f56f6186c
commit d5b07ccc1b
2 changed files with 18 additions and 0 deletions

View File

@ -532,6 +532,7 @@ static const struct driver_info wwan_info = {
#define LENOVO_VENDOR_ID 0x17ef #define LENOVO_VENDOR_ID 0x17ef
#define NVIDIA_VENDOR_ID 0x0955 #define NVIDIA_VENDOR_ID 0x0955
#define HP_VENDOR_ID 0x03f0 #define HP_VENDOR_ID 0x03f0
#define MICROSOFT_VENDOR_ID 0x045e
static const struct usb_device_id products[] = { static const struct usb_device_id products[] = {
/* BLACKLIST !! /* BLACKLIST !!
@ -761,6 +762,20 @@ static const struct usb_device_id products[] = {
.driver_info = 0, .driver_info = 0,
}, },
/* Microsoft Surface 2 dock (based on Realtek RTL8152) */
{
USB_DEVICE_AND_INTERFACE_INFO(MICROSOFT_VENDOR_ID, 0x07ab, USB_CLASS_COMM,
USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
.driver_info = 0,
},
/* Microsoft Surface 3 dock (based on Realtek RTL8153) */
{
USB_DEVICE_AND_INTERFACE_INFO(MICROSOFT_VENDOR_ID, 0x07c6, USB_CLASS_COMM,
USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
.driver_info = 0,
},
/* WHITELIST!!! /* WHITELIST!!!
* *
* CDC Ether uses two interfaces, not necessarily consecutive. * CDC Ether uses two interfaces, not necessarily consecutive.

View File

@ -517,6 +517,7 @@ enum rtl8152_flags {
/* Define these values to match your device */ /* Define these values to match your device */
#define VENDOR_ID_REALTEK 0x0bda #define VENDOR_ID_REALTEK 0x0bda
#define VENDOR_ID_MICROSOFT 0x045e
#define VENDOR_ID_SAMSUNG 0x04e8 #define VENDOR_ID_SAMSUNG 0x04e8
#define VENDOR_ID_LENOVO 0x17ef #define VENDOR_ID_LENOVO 0x17ef
#define VENDOR_ID_NVIDIA 0x0955 #define VENDOR_ID_NVIDIA 0x0955
@ -4521,6 +4522,8 @@ static void rtl8152_disconnect(struct usb_interface *intf)
static struct usb_device_id rtl8152_table[] = { static struct usb_device_id rtl8152_table[] = {
{REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)}, {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)},
{REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)}, {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)},
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)},
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)},
{REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)}, {REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)},
{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)},
{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3062)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3062)},