|
@@ -31,6 +31,8 @@
|
|
#define DRIVER_AUTHOR "Oliver Neukum"
|
|
#define DRIVER_AUTHOR "Oliver Neukum"
|
|
#define DRIVER_DESC "USB Abstract Control Model driver for USB WCM Device Management"
|
|
#define DRIVER_DESC "USB Abstract Control Model driver for USB WCM Device Management"
|
|
|
|
|
|
|
|
+#define HUAWEI_VENDOR_ID 0x12D1
|
|
|
|
+
|
|
static const struct usb_device_id wdm_ids[] = {
|
|
static const struct usb_device_id wdm_ids[] = {
|
|
{
|
|
{
|
|
.match_flags = USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
.match_flags = USB_DEVICE_ID_MATCH_INT_CLASS |
|
|
@@ -38,6 +40,20 @@ static const struct usb_device_id wdm_ids[] = {
|
|
.bInterfaceClass = USB_CLASS_COMM,
|
|
.bInterfaceClass = USB_CLASS_COMM,
|
|
.bInterfaceSubClass = USB_CDC_SUBCLASS_DMM
|
|
.bInterfaceSubClass = USB_CDC_SUBCLASS_DMM
|
|
},
|
|
},
|
|
|
|
+ {
|
|
|
|
+ /*
|
|
|
|
+ * Huawei E392, E398 and possibly other Qualcomm based modems
|
|
|
|
+ * embed the Qualcomm QMI protocol inside CDC on CDC ECM like
|
|
|
|
+ * control interfaces. Userspace access to this is required
|
|
|
|
+ * to configure the accompanying data interface
|
|
|
|
+ */
|
|
|
|
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR |
|
|
|
|
+ USB_DEVICE_ID_MATCH_INT_INFO,
|
|
|
|
+ .idVendor = HUAWEI_VENDOR_ID,
|
|
|
|
+ .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
|
|
|
|
+ .bInterfaceSubClass = 1,
|
|
|
|
+ .bInterfaceProtocol = 9, /* NOTE: CDC ECM control interface! */
|
|
|
|
+ },
|
|
{ }
|
|
{ }
|
|
};
|
|
};
|
|
|
|
|