• Bjørn Mork's avatar
    net: qmi_wwan: fix Gobi device probing · 4dd20787
    Bjørn Mork authored
    commit b9f90eb2 upstream.
    
    Ignoring interfaces with additional descriptors is not a reliable
    method for locating the correct interface on Gobi devices.  There
    is at least one device where this method fails:
    https://bbs.archlinux.org/viewtopic.php?id=143506
    
    The result is that the AT command port (interface #2) is hidden
    from qcserial, preventing traditional serial modem usage:
    
    [   15.562552] qmi_wwan 4-1.6:1.0: cdc-wdm0: USB WDM device
    [   15.562691] qmi_wwan 4-1.6:1.0: wwan0: register 'qmi_wwan' at usb-0000:00:1d.0-1.6, Qualcomm Gobi wwan/QMI device, 1e:df:3c:3a:4e:3b
    [   15.563383] qmi_wwan: probe of 4-1.6:1.1 failed with error -22
    [   15.564189] qmi_wwan 4-1.6:1.2: cdc-wdm1: USB WDM device
    [   15.564302] qmi_wwan 4-1.6:1.2: wwan1: register 'qmi_wwan' at usb-0000:00:1d.0-1.6, Qualcomm Gobi wwan/QMI device, 1e:df:3c:3a:4e:3b
    [   15.564328] qmi_wwan: probe of 4-1.6:1.3 failed with error -22
    [   15.569376] qcserial 4-1.6:1.1: Qualcomm USB modem converter detected
    [   15.569440] usb 4-1.6: Qualcomm USB modem converter now attached to ttyUSB0
    [   15.570372] qcserial 4-1.6:1.3: Qualcomm USB modem converter detected
    [   15.570430] usb 4-1.6: Qualcomm USB modem converter now attached to ttyUSB1
    
    Use static interface numbers taken from the interface map in
    qcserial for all Gobi devices instead:
    
    	Gobi 1K USB layout:
    	0: serial port (doesn't respond)
    	1: serial port (doesn't respond)
    	2: AT-capable modem port
    	3: QMI/net
    
    	Gobi 2K+ USB layout:
    	0: QMI/net
    	1: DM/DIAG (use libqcdm from ModemManager for communication)
    	2: AT-capable modem port
    	3: NMEA
    
    This should be more reliable over all, and will also prevent the
    noisy "probe failed" messages.  The whitelisting logic is expected
    to be replaced by direct interface number matching in 3.6.
    Reported-by: default avatarHeinrich Siebmanns (Harvey) <H.Siebmanns@t-online.de>
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    4dd20787
qmi_wwan.c 19.3 KB