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

Zhao Dongdong <[email protected]>
Newsgroups org.kernel.vger.linux-usb,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Mon, 17 Aug 2026 08:40:48 +0200, Johan Hovold <[email protected]> wrote:
>
> On Mon, Aug 17, 2026 at 09:40:05AM +0800, Zhao Dongdong wrote:
> > From: Zhao Dongdong <[email protected]>
> > 
> > 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 <[email protected]>
> > ---
> > v2: Modify the order.
> > v1: https://lore.kernel.org/all/[email protected]/
> > ---
> > ---
> >  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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.