diff options
Diffstat (limited to 'drivers/usb/class')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 2 | ||||
| -rw-r--r-- | drivers/usb/class/cdc-wdm.c | 25 |
2 files changed, 1 insertions, 26 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 36a2a0b7b82c..56d6bf668488 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c | |||
| @@ -996,7 +996,7 @@ static int acm_probe(struct usb_interface *intf, | |||
| 996 | case USB_CDC_CALL_MANAGEMENT_TYPE: | 996 | case USB_CDC_CALL_MANAGEMENT_TYPE: |
| 997 | call_management_function = buffer[3]; | 997 | call_management_function = buffer[3]; |
| 998 | call_interface_num = buffer[4]; | 998 | call_interface_num = buffer[4]; |
| 999 | if ( (quirks & NOT_A_MODEM) == 0 && (call_management_function & 3) != 3) | 999 | if ((quirks & NOT_A_MODEM) == 0 && (call_management_function & 3) != 3) |
| 1000 | dev_err(&intf->dev, "This device cannot do calls on its own. It is not a modem.\n"); | 1000 | dev_err(&intf->dev, "This device cannot do calls on its own. It is not a modem.\n"); |
| 1001 | break; | 1001 | break; |
| 1002 | default: | 1002 | default: |
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c index ee469274a3fe..65a55abb791f 100644 --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c | |||
| @@ -32,8 +32,6 @@ | |||
| 32 | #define DRIVER_AUTHOR "Oliver Neukum" | 32 | #define DRIVER_AUTHOR "Oliver Neukum" |
| 33 | #define DRIVER_DESC "USB Abstract Control Model driver for USB WCM Device Management" | 33 | #define DRIVER_DESC "USB Abstract Control Model driver for USB WCM Device Management" |
| 34 | 34 | ||
| 35 | #define HUAWEI_VENDOR_ID 0x12D1 | ||
| 36 | |||
| 37 | static const struct usb_device_id wdm_ids[] = { | 35 | static const struct usb_device_id wdm_ids[] = { |
| 38 | { | 36 | { |
| 39 | .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS | | 37 | .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS | |
| @@ -41,29 +39,6 @@ static const struct usb_device_id wdm_ids[] = { | |||
| 41 | .bInterfaceClass = USB_CLASS_COMM, | 39 | .bInterfaceClass = USB_CLASS_COMM, |
| 42 | .bInterfaceSubClass = USB_CDC_SUBCLASS_DMM | 40 | .bInterfaceSubClass = USB_CDC_SUBCLASS_DMM |
| 43 | }, | 41 | }, |
| 44 | { | ||
| 45 | /* | ||
| 46 | * Huawei E392, E398 and possibly other Qualcomm based modems | ||
| 47 | * embed the Qualcomm QMI protocol inside CDC on CDC ECM like | ||
| 48 | * control interfaces. Userspace access to this is required | ||
| 49 | * to configure the accompanying data interface | ||
| 50 | */ | ||
| 51 | .match_flags = USB_DEVICE_ID_MATCH_VENDOR | | ||
| 52 | USB_DEVICE_ID_MATCH_INT_INFO, | ||
| 53 | .idVendor = HUAWEI_VENDOR_ID, | ||
| 54 | .bInterfaceClass = USB_CLASS_VENDOR_SPEC, | ||
| 55 | .bInterfaceSubClass = 1, | ||
| 56 | .bInterfaceProtocol = 9, /* NOTE: CDC ECM control interface! */ | ||
| 57 | }, | ||
| 58 | { | ||
| 59 | /* Vodafone/Huawei K5005 (12d1:14c8) and similar modems */ | ||
| 60 | .match_flags = USB_DEVICE_ID_MATCH_VENDOR | | ||
| 61 | USB_DEVICE_ID_MATCH_INT_INFO, | ||
| 62 | .idVendor = HUAWEI_VENDOR_ID, | ||
| 63 | .bInterfaceClass = USB_CLASS_VENDOR_SPEC, | ||
| 64 | .bInterfaceSubClass = 1, | ||
| 65 | .bInterfaceProtocol = 57, /* NOTE: CDC ECM control interface! */ | ||
| 66 | }, | ||
| 67 | { } | 42 | { } |
| 68 | }; | 43 | }; |
| 69 | 44 | ||
