Skip to content
  • Bjørn Mork's avatar
    net: qmi_wwan: fix Gobi device probing · b9f90eb2
    Bjørn Mork authored
    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>
    Cc: <stable@vger.kernel.org> # v3.4: 00001880 USB: qmi_wwan: Make forced int 4 whitelist generic
    Cc: <stable@vger.kernel.org> # v3.4: f7142e6c
    
     USB: qmi_wwan: Add ZTE (Vodafone) K3520-Z
    Cc: <stable@vger.kernel.org> # v3.4
    Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b9f90eb2