On Tue, Jun 26, 2018 at 09:32:32AM +0200, Aleksander Morgado wrote: > On Tue, Jun 26, 2018 at 8:09 AM, Johan Hovold <johan@xxxxxxxxxx> wrote: > > On Sat, Jun 23, 2018 at 11:24:08PM +0200, Aleksander Morgado wrote: > >> This module exposes two USB configurations: a QMI+AT capable setup on > >> USB config #1 and a MBIM capable setup on USB config #2. > >> > >> By default the kernel will choose the MBIM capable configuration as > >> long as the cdc_mbim driver is available. This patch adds support for > >> the serial ports in the secondary configuration. > > > > Could you please post the usb-devices output for this device? > > > > Depending on another driver to select a specific configuration seems > > fragile (and that behaviour is even configurable). > > This would be when running on configuration #1: > > T: Bus=04 Lev=03 Prnt=04 Port=02 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0 > D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 2 > P: Vendor=413c ProdID=81d7 Rev=03.18 > S: Manufacturer=DELL > S: Product=DW5821e Snapdragon X20 LTE > S: SerialNumber=0123456789ABCDEF > C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA > I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=qcserial > I: If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan > I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial > I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial > I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none) So this doesn't really match the Sierra layout in qcserial, where the QMI interface is documented as interface 8 (but perhaps we have other examples of that already). Do you know what these serial ports are used for? > This would be when running on configuration #2: > > T: Bus=04 Lev=03 Prnt=04 Port=02 Cnt=01 Dev#= 6 Spd=5000 MxCh= 0 > D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 2 > P: Vendor=413c ProdID=81d7 Rev=03.18 > S: Manufacturer=DELL > S: Product=DW5821e Snapdragon X20 LTE > S: SerialNumber=0123456789ABCDEF > C: #Ifs= 3 Cfg#= 2 Atr=a0 MxPwr=896mA > I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim > I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim > I: If#=0x2 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=qcserial And here you happen to bind interface 2, but is that intentional? What is that port used for? Just based on the above, perhaps using option and matching on the vendor class, while blacklisting interface 1 would be more appropriate? Johan -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html