diff options
author | Dan Williams <dcbw@redhat.com> | 2013-03-13 15:58:18 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-13 16:50:42 +0100 |
commit | 3f8bc5e4da29c7e05edeca6b475abb4fb01a5a13 (patch) | |
tree | e7da7045c6333c169cb784ab54108621832b9d7a /drivers/usb/serial/qcserial.c | |
parent | USB: cdc-wdm: fix buffer overflow (diff) | |
download | linux-3f8bc5e4da29c7e05edeca6b475abb4fb01a5a13.tar.xz linux-3f8bc5e4da29c7e05edeca6b475abb4fb01a5a13.zip |
qcserial: bind to DM/DIAG port on Gobi 1K devices
Turns out we just need altsetting 1 and then we can talk to it.
Signed-off-by: Dan Williams <dcbw@redhat.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to '')
-rw-r--r-- | drivers/usb/serial/qcserial.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c index 24662547dc5b..59b32b782126 100644 --- a/drivers/usb/serial/qcserial.c +++ b/drivers/usb/serial/qcserial.c @@ -197,12 +197,15 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) if (is_gobi1k) { /* Gobi 1K USB layout: - * 0: serial port (doesn't respond) + * 0: DM/DIAG (use libqcdm from ModemManager for communication) * 1: serial port (doesn't respond) * 2: AT-capable modem port * 3: QMI/net */ - if (ifnum == 2) + if (ifnum == 0) { + dev_dbg(dev, "Gobi 1K DM/DIAG interface found\n"); + altsetting = 1; + } else if (ifnum == 2) dev_dbg(dev, "Modem port found\n"); else altsetting = -1; |