Commit d5b07ccc authored by René Rebe's avatar René Rebe Committed by David S. Miller

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: default avatarRené Rebe <rene@exactcode.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6f56f618
...@@ -532,6 +532,7 @@ static const struct driver_info wwan_info = { ...@@ -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[] = { ...@@ -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.
......
...@@ -517,6 +517,7 @@ enum rtl8152_flags { ...@@ -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) ...@@ -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)},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment