From: Dan Williams Date: Wed, 13 Mar 2013 14:58:18 +0000 (-0500) Subject: qcserial: bind to DM/DIAG port on Gobi 1K devices X-Git-Tag: v3.8.4~60 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d9d69bf5a076f683e6dbbd48488f401842502ccc;p=users%2Fjedix%2Flinux-maple.git qcserial: bind to DM/DIAG port on Gobi 1K devices commit 3f8bc5e4da29c7e05edeca6b475abb4fb01a5a13 upstream. Turns out we just need altsetting 1 and then we can talk to it. Signed-off-by: Dan Williams Signed-off-by: Greg Kroah-Hartman --- 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;