Hello Lars, a little background: We are just a company that uses the Quectel modems in our products. So far, I was not able to get more information from Quectel apart from that it is the same module with a different product ID. Unfortunately, they will stick to the new product ID. So, my approach was to clone to entry for EM05-G with the old id. With these changes it is working. But you are right. I removed RSVP(6) option entirely and it also works fine. I currently trying to get on hold of a module with the old product ID (might be difficult), because I think the driver for the old revision might then also have the same issue. Please provide any feedback you can, it would be greatly appreciated, our customers are eager to have the modem working in Linux again. Greetings, Martin Kohn -----Original Message----- From: Lars Melin <larsm17@xxxxxxxxx> Sent: Saturday, July 22, 2023 2:32 AM To: Martin Kohn <m.kohn@xxxxxxxxxxx>; linux-usb@xxxxxxxxxxxxxxx Subject: Re: [PATCH] USB: serial: option: add Quectel EM05G module support with product ID 0x030e On 7/22/2023 1:26, Martin Kohn wrote: > Add Quectel EM05G with product ID 0x030e > > T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=480 MxCh= 0 > D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 > P: Vendor=2c7c ProdID=030e Rev= 3.18 > S: Manufacturer=Quectel > S: Product=Quectel EM05-G > C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA > I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option > E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms > I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option > E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms > E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms > I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option > E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms > E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms > I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option > E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms > E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms > I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option > E: Ad=89(I) Atr=03(Int.) MxPS= 8 Ivl=32ms > E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms > > > Signed-off-by: Martin Kohn <m.kohn@xxxxxxxxxxx> > --- > drivers/usb/serial/option.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > index 288a96a74266..cbe35c3db45a 100644 > --- a/drivers/usb/serial/option.c > +++ b/drivers/usb/serial/option.c > @@ -256,6 +256,7 @@ static void option_instat_callback(struct urb *urb); > #define QUECTEL_PRODUCT_BG96 0x0296 > #define QUECTEL_PRODUCT_EP06 0x0306 > #define QUECTEL_PRODUCT_EM05G 0x030a > +#define QUECTEL_PRODUCT_EM05GV2 0x030e > #define QUECTEL_PRODUCT_EM060K 0x030b > #define QUECTEL_PRODUCT_EM05G_CS 0x030c > #define QUECTEL_PRODUCT_EM05CN_SG 0x0310 > @@ -1186,6 +1187,8 @@ static const struct usb_device_id option_ids[] = { > .driver_info = RSVD(6) | ZLP }, > { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff), > .driver_info = RSVD(6) | ZLP }, > + { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05GV2, 0xff), > + .driver_info = RSVD(6) | ZLP }, > { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_CS, 0xff), > .driver_info = RSVD(6) | ZLP }, > { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, > QUECTEL_PRODUCT_EM05G_GR, 0xff), That doesn't look right to me for many reasons, one of them being that you let the option driver bind to the qmi net interface. You have also reserved interface 6 but there is no interface with that number in EM05GV2. Thanks Lars