#define DRIVER_AUTHOR "Oliver Neukum"
 #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[] = {
        {
                .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS |
                .bInterfaceClass = USB_CLASS_COMM,
                .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! */
+       },
        { }
 };