diff options
Diffstat (limited to 'drivers/usb/serial/qcserial.c')
| -rw-r--r-- | drivers/usb/serial/qcserial.c | 52 | 
1 files changed, 26 insertions, 26 deletions
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c index 8d103019d6a..c3ddb65c05f 100644 --- a/drivers/usb/serial/qcserial.c +++ b/drivers/usb/serial/qcserial.c @@ -22,8 +22,6 @@  #define DRIVER_AUTHOR "Qualcomm Inc"  #define DRIVER_DESC "Qualcomm USB Serial driver" -static bool debug; -  #define DEVICE_G1K(v, p) \  	USB_DEVICE(v, p), .driver_info = 1 @@ -199,43 +197,49 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)  	/* 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. -		 */ +	/* Composite mode; don't bind to the QMI/net interface as that +	 * gets handled by other drivers. +	 */ + +	if (is_gobi1k) {  		/* 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: +		 */ +		if (ifnum == 2) +			dev_dbg(dev, "Modem port found\n"); +		else +			altsetting = -1; +	} else { +		/* Gobi 2K+ USB layout:  		 * 0: QMI/net  		 * 1: DM/DIAG (use libqcdm from ModemManager for communication)  		 * 2: AT-capable modem port  		 * 3: NMEA  		 */ - -	case 1: -		if (is_gobi1k) +		switch (ifnum) { +		case 0: +			/* Don't claim the QMI/net interface */  			altsetting = -1; -		else +			break; +		case 1:  			dev_dbg(dev, "Gobi 2K+ DM/DIAG interface found\n"); -		break; -	case 2: -		dev_dbg(dev, "Modem port found\n"); -		break; -	case 3: -		if (is_gobi1k) -			altsetting = -1; -		else +			break; +		case 2: +			dev_dbg(dev, "Modem port found\n"); +			break; +		case 3:  			/*  			 * 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"); +			break; +		}  	}  done: @@ -262,8 +266,7 @@ static void qc_release(struct usb_serial *serial)  {  	struct usb_wwan_intf_private *priv = usb_get_serial_data(serial); -	/* Call usb_wwan release & free the private data allocated in qcprobe */ -	usb_wwan_release(serial); +	/* Free the private data allocated in qcprobe */  	usb_set_serial_data(serial, NULL);  	kfree(priv);  } @@ -283,8 +286,8 @@ static struct usb_serial_driver qcdevice = {  	.write_room	     = usb_wwan_write_room,  	.chars_in_buffer     = usb_wwan_chars_in_buffer,  	.attach		     = usb_wwan_startup, -	.disconnect	     = usb_wwan_disconnect,  	.release	     = qc_release, +	.port_remove	     = usb_wwan_port_remove,  #ifdef CONFIG_PM  	.suspend	     = usb_wwan_suspend,  	.resume		     = usb_wwan_resume, @@ -300,6 +303,3 @@ module_usb_serial_driver(serial_drivers, id_table);  MODULE_AUTHOR(DRIVER_AUTHOR);  MODULE_DESCRIPTION(DRIVER_DESC);  MODULE_LICENSE("GPL v2"); - -module_param(debug, bool, S_IRUGO | S_IWUSR); -MODULE_PARM_DESC(debug, "Debug enabled or not");  |