Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 317058
b: refs/heads/master
c: 0dfbf65
h: refs/heads/master
v: v3
  • Loading branch information
Bjørn Mork authored and Greg Kroah-Hartman committed Jul 17, 2012
1 parent 7a9831d commit 30d2dd8
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d25d5f28828708b81658cff6f676b710c7ee171d
refs/heads/master: 0dfbf65eb070a6dda535fcfec6028a7412698358
44 changes: 26 additions & 18 deletions trunk/drivers/usb/serial/qcserial.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,13 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)

spin_lock_init(&data->susp_lock);

switch (nintf) {
case 1:
if (nintf == 1) {
/* QDL mode */
/* Gobi 2000 has a single altsetting, older ones have two */
if (serial->interface->num_altsetting == 2)
intf = &serial->interface->altsetting[1];
else if (serial->interface->num_altsetting > 2)
break;
goto done;

if (intf->desc.bNumEndpoints == 2 &&
usb_endpoint_is_bulk_in(&intf->endpoint[0].desc) &&
Expand All @@ -162,10 +161,18 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
else
altsetting = 1;
}
break;
goto done;

case 3:
case 4:
}

if (nintf < 3 || nintf > 4) {
dev_err(dev, "unknown number of interfaces: %d\n", nintf);
goto done;
}

/* default to enabling interface */
altsetting = 0;
switch (ifnum) {
/* Composite mode; don't bind to the QMI/net interface as that
* gets handled by other drivers.
*/
Expand All @@ -183,27 +190,28 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
* 3: NMEA
*/

if (ifnum == 1 && !is_gobi1k) {
case 1:
if (is_gobi1k)
altsetting = -1;
else
dev_dbg(dev, "Gobi 2K+ DM/DIAG interface found\n");
altsetting = 0;
} else if (ifnum == 2) {
dev_dbg(dev, "Modem port found\n");
altsetting = 0;
} else if (ifnum==3 && !is_gobi1k) {
break;
case 2:
dev_dbg(dev, "Modem port found\n");
break;
case 3:
if (is_gobi1k)
altsetting = -1;
else
/*
* NMEA (serial line 9600 8N1)
* # echo "\$GPS_START" > /dev/ttyUSBx
* # echo "\$GPS_STOP" > /dev/ttyUSBx
*/
dev_dbg(dev, "Gobi 2K+ NMEA GPS interface found\n");
altsetting = 0;
}
break;

default:
dev_err(dev, "unknown number of interfaces: %d\n", nintf);
}

done:
if (altsetting >= 0) {
retval = usb_set_interface(serial->dev, ifnum, altsetting);
if (retval < 0) {
Expand Down

0 comments on commit 30d2dd8

Please sign in to comment.