Re: [PATCH v2] USB: serial: option: add support for SIMCom SIM8260C

From: Zhao Dongdong

Date: Mon Aug 17 2026 - 03:17:08 EST


On Mon, 17 Aug 2026 08:40:48 +0200, Johan Hovold <johan@xxxxxxxxxx> wrote:
>
> On Mon, Aug 17, 2026 at 09:40:05AM +0800, Zhao Dongdong wrote:
> > From: Zhao Dongdong <zhaodongdong@xxxxxxxxxx>
> >
> > Add support for SIMCom SIM8260C (1e0e:902b).
> >
> > T: Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
> > D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
> > P: Vendor=1e0e ProdID=902b Rev= 5.04
> > S: Manufacturer=SIMCOM
> > S: Product=SDXLEMUR-LITE-MTP _SN:120696AB
> > S: SerialNumber=0123456789ABCDEF
> > C:* #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=896mA
> > A: FirstIf#= 5 IfCount= 3 Cls=01(audio) Sub=00 Prot=20
> > I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
> > E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
> > E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> > E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
> > E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> > E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
> > E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
> > E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan_simcom
> > E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
> > E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
> > I:* If#= 5 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=20 Driver=snd-usb-audio
> > I:* If#= 6 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=20 Driver=snd-usb-audio
> > I: If#= 6 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=20 Driver=snd-usb-audio
> > E: Ad=05(O) Atr=0d(Isoc) MxPS= 34 Ivl=1ms
> > I:* If#= 7 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=20 Driver=option
> > I: If#= 7 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=20 Driver=option
>
> As you can see here, you should only match on vendor class interfaces to
> avoid probing the audio interfaces.
>
> > E: Ad=89(I) Atr=0d(Isoc) MxPS= 34 Ivl=1ms
> >
> > Signed-off-by: Zhao Dongdong <zhaodongdong@xxxxxxxxxx>
> > ---
> > v2: Modify the order.
> > v1: https://lore.kernel.org/all/tencent_CDB9F0B44FDD051447DCF48862B8E764E80A@xxxxxx/
> > ---
> > ---
> > drivers/usb/serial/option.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> > index 580f06f5ce5e..e52f3fe6ccd9 100644
> > --- a/drivers/usb/serial/option.c
> > +++ b/drivers/usb/serial/option.c
> > @@ -2168,6 +2168,8 @@ static const struct usb_device_id option_ids[] = {
> > { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9003, 0xff) }, /* Simcom SIM7500/SIM7600 MBIM mode */
> > { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9011, 0xff), /* Simcom SIM7500/SIM7600 RNDIS mode */
> > .driver_info = RSVD(7) },
> > + { USB_DEVICE(0x1e0e, 0x902b),
> > + .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
>
> That is, use USB_DEVICE_INTERFACE_CLASS() here and only reserve
> interface 4.
>
> > { USB_DEVICE(0x1e0e, 0x9071), /* Simcom SIM8230 RMNET mode */
> > .driver_info = RSVD(3) | RSVD(4) },
> > { USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9078, 0xff), /* Simcom SIM8230 ECM mode */
>
> Johan

Thanks. I get it.


--
Regards,
Zhao Dongdong