summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2013-03-13 02:25:17 +0000
committerDavid S. Miller <davem@davemloft.net>2013-03-13 11:33:42 -0400
commitb701f16dd490d3f346724050f17d60beda094998 (patch)
tree7fda5d6dbe6187a87f06494fbe2e69c8bc6bdd3a /include
parent5b9e12dbf92b441b37136ea71dac59f05f2673a9 (diff)
downloadlinux-b701f16dd490d3f346724050f17d60beda094998.tar.gz
linux-b701f16dd490d3f346724050f17d60beda094998.tar.bz2
linux-b701f16dd490d3f346724050f17d60beda094998.zip
net: qmi_wwan: set correct altsetting for Gobi 1K devices
commit bd877e4 ("net: qmi_wwan: use a single bind function for all device types") made Gobi 1K devices fail probing. Using the number of endpoints in the default altsetting to decide whether the function use one or two interfaces is wrong. Other altsettings may provide more endpoints. With Gobi 1K devices, USB interface #3's altsetting is 0 by default, but altsetting 0 only provides one interrupt endpoint and is not sufficent for QMI. Altsetting 1 provides all 3 endpoints required for qmi_wwan and works with QMI. Gobi 1K layout for intf#3 is: Interface Descriptor: 255/255/255 bInterfaceNumber 3 bAlternateSetting 0 Endpoint Descriptor: Interrupt IN Interface Descriptor: 255/255/255 bInterfaceNumber 3 bAlternateSetting 1 Endpoint Descriptor: Interrupt IN Endpoint Descriptor: Bulk IN Endpoint Descriptor: Bulk OUT Prior to commit bd877e4, we would call usbnet_get_endpoints before giving up finding enough endpoints. Removing the early endpoint number test and the strict functional descriptor requirement allow qmi_wwan_bind to continue until usbnet_get_endpoints has made the final attempt to collect endpoints. This restores the behaviour from before commit bd877e4 without losing the added benefit of using a single bind function. The driver has always required a CDC Union functional descriptor for two-interface functions. Using the existence of this descriptor to detect two-interface functions is the logically correct method. Reported-by: Dan Williams <dcbw@redhat.com> Signed-off-by: Bjørn Mork <bjorn@mork.no> Tested-by: Dan Williams <dcbw@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions