diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-10-09 03:02:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-10-09 03:02:35 -0400 |
commit | 1236d6bb6e19fc72ffc6bbcdeb1bfefe450e54ee (patch) | |
tree | 47da3feee8e263e8c9352c85cf518e624be3c211 /drivers/net/usb/cdc_ether.c | |
parent | 750b1a6894ecc9b178c6e3d0a1170122971b2036 (diff) | |
parent | 8a5776a5f49812d29fe4b2d0a2d71675c3facf3f (diff) |
Merge 4.14-rc4 into staging-next
We want the staging/iio fixes in here as well to handle merge issues.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/usb/cdc_ether.c')
-rw-r--r-- | drivers/net/usb/cdc_ether.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index 8ab281b478f2..29c7e2ec0dcb 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c | |||
@@ -54,11 +54,19 @@ static int is_wireless_rndis(struct usb_interface_descriptor *desc) | |||
54 | desc->bInterfaceProtocol == 3); | 54 | desc->bInterfaceProtocol == 3); |
55 | } | 55 | } |
56 | 56 | ||
57 | static int is_novatel_rndis(struct usb_interface_descriptor *desc) | ||
58 | { | ||
59 | return (desc->bInterfaceClass == USB_CLASS_MISC && | ||
60 | desc->bInterfaceSubClass == 4 && | ||
61 | desc->bInterfaceProtocol == 1); | ||
62 | } | ||
63 | |||
57 | #else | 64 | #else |
58 | 65 | ||
59 | #define is_rndis(desc) 0 | 66 | #define is_rndis(desc) 0 |
60 | #define is_activesync(desc) 0 | 67 | #define is_activesync(desc) 0 |
61 | #define is_wireless_rndis(desc) 0 | 68 | #define is_wireless_rndis(desc) 0 |
69 | #define is_novatel_rndis(desc) 0 | ||
62 | 70 | ||
63 | #endif | 71 | #endif |
64 | 72 | ||
@@ -150,7 +158,8 @@ int usbnet_generic_cdc_bind(struct usbnet *dev, struct usb_interface *intf) | |||
150 | */ | 158 | */ |
151 | rndis = (is_rndis(&intf->cur_altsetting->desc) || | 159 | rndis = (is_rndis(&intf->cur_altsetting->desc) || |
152 | is_activesync(&intf->cur_altsetting->desc) || | 160 | is_activesync(&intf->cur_altsetting->desc) || |
153 | is_wireless_rndis(&intf->cur_altsetting->desc)); | 161 | is_wireless_rndis(&intf->cur_altsetting->desc) || |
162 | is_novatel_rndis(&intf->cur_altsetting->desc)); | ||
154 | 163 | ||
155 | memset(info, 0, sizeof(*info)); | 164 | memset(info, 0, sizeof(*info)); |
156 | info->control = intf; | 165 | info->control = intf; |
@@ -547,6 +556,7 @@ static const struct driver_info wwan_info = { | |||
547 | #define REALTEK_VENDOR_ID 0x0bda | 556 | #define REALTEK_VENDOR_ID 0x0bda |
548 | #define SAMSUNG_VENDOR_ID 0x04e8 | 557 | #define SAMSUNG_VENDOR_ID 0x04e8 |
549 | #define LENOVO_VENDOR_ID 0x17ef | 558 | #define LENOVO_VENDOR_ID 0x17ef |
559 | #define LINKSYS_VENDOR_ID 0x13b1 | ||
550 | #define NVIDIA_VENDOR_ID 0x0955 | 560 | #define NVIDIA_VENDOR_ID 0x0955 |
551 | #define HP_VENDOR_ID 0x03f0 | 561 | #define HP_VENDOR_ID 0x03f0 |
552 | #define MICROSOFT_VENDOR_ID 0x045e | 562 | #define MICROSOFT_VENDOR_ID 0x045e |
@@ -737,6 +747,15 @@ static const struct usb_device_id products[] = { | |||
737 | .driver_info = 0, | 747 | .driver_info = 0, |
738 | }, | 748 | }, |
739 | 749 | ||
750 | #if IS_ENABLED(CONFIG_USB_RTL8152) | ||
751 | /* Linksys USB3GIGV1 Ethernet Adapter */ | ||
752 | { | ||
753 | USB_DEVICE_AND_INTERFACE_INFO(LINKSYS_VENDOR_ID, 0x0041, USB_CLASS_COMM, | ||
754 | USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), | ||
755 | .driver_info = 0, | ||
756 | }, | ||
757 | #endif | ||
758 | |||
740 | /* ThinkPad USB-C Dock (based on Realtek RTL8153) */ | 759 | /* ThinkPad USB-C Dock (based on Realtek RTL8153) */ |
741 | { | 760 | { |
742 | USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3062, USB_CLASS_COMM, | 761 | USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3062, USB_CLASS_COMM, |