On Sat, Mar 02, 2019 at 01:35:53PM +0100, Kristian Evensen wrote: > The Quectel EM12 is a Cat. 12 LTE modem. It behaves in the exactly the > same way as the EP06 (including the dynamic configuration behavior), so > the same checkes on reserved interfaces, etc. are needed. > > Signed-off-by: Kristian Evensen <kristian.evensen@xxxxxxxxx> > --- > drivers/usb/serial/option.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > index aef15497ff31..cc8932658e72 100644 > --- a/drivers/usb/serial/option.c > +++ b/drivers/usb/serial/option.c > @@ -246,6 +246,7 @@ static void option_instat_callback(struct urb *urb); > #define QUECTEL_PRODUCT_EC25 0x0125 > #define QUECTEL_PRODUCT_BG96 0x0296 > #define QUECTEL_PRODUCT_EP06 0x0306 > +#define QUECTEL_PRODUCT_EM12 0x0512 > > #define CMOTECH_VENDOR_ID 0x16d8 > #define CMOTECH_PRODUCT_6001 0x6001 > @@ -1086,7 +1087,10 @@ static const struct usb_device_id option_ids[] = { > .driver_info = RSVD(4) }, > { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), > .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, > + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff), > + .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, > { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, > + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) }, I think we should keep both entries together, so reordered above. > { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, > { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, > { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), Now applied, but could you please post the output of usb-devices (with all interfaces enabled) for this device for reference? Thanks, Johan