diff options
| author | David S. Miller <davem@davemloft.net> | 2009-05-18 21:08:20 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-05-18 21:08:20 -0700 | 
| commit | bb803cfbecb03a0cf8dc7e1864f18dda6631af00 (patch) | |
| tree | 6c0989693bea6f50cfa5c6bb14f52ec19668def3 /drivers/usb/serial/sierra.c | |
| parent | 3878fb6fdbceecca20b15748f807340854220f06 (diff) | |
| parent | 511e11e396dc596825ce04d53d7f6d579404bc01 (diff) | |
| download | olio-linux-3.10-bb803cfbecb03a0cf8dc7e1864f18dda6631af00.tar.xz olio-linux-3.10-bb803cfbecb03a0cf8dc7e1864f18dda6631af00.zip  | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
	drivers/scsi/fcoe/fcoe.c
Diffstat (limited to 'drivers/usb/serial/sierra.c')
| -rw-r--r-- | drivers/usb/serial/sierra.c | 24 | 
1 files changed, 17 insertions, 7 deletions
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c index d9bf9a5c20e..913225c6161 100644 --- a/drivers/usb/serial/sierra.c +++ b/drivers/usb/serial/sierra.c @@ -14,7 +14,7 @@    Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org>  */ -#define DRIVER_VERSION "v.1.3.2" +#define DRIVER_VERSION "v.1.3.3"  #define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>"  #define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" @@ -259,9 +259,21 @@ static int sierra_send_setup(struct tty_struct *tty,  			val |= 0x02;  		/* If composite device then properly report interface */ -		if (serial->num_ports == 1) +		if (serial->num_ports == 1) {  			interface = sierra_calc_interface(serial); +			/* Control message is sent only to interfaces with +			 * interrupt_in endpoints +			 */ +			if (port->interrupt_in_urb) { +				/* send control message */ +				return usb_control_msg(serial->dev, +					usb_rcvctrlpipe(serial->dev, 0), +					0x22, 0x21, val, interface, +					NULL, 0, USB_CTRL_SET_TIMEOUT); +			} +		} +  		/* Otherwise the need to do non-composite mapping */  		else {  			if (port->bulk_out_endpointAddress == 2) @@ -270,12 +282,13 @@ static int sierra_send_setup(struct tty_struct *tty,  				interface = 1;  			else if (port->bulk_out_endpointAddress == 5)  				interface = 2; -		} -		return usb_control_msg(serial->dev, +			return usb_control_msg(serial->dev,  				usb_rcvctrlpipe(serial->dev, 0),  				0x22, 0x21, val, interface,  				NULL, 0, USB_CTRL_SET_TIMEOUT); + +		}  	}  	return 0; @@ -585,9 +598,6 @@ static int sierra_open(struct tty_struct *tty,  		}  	} -	if (tty) -		tty->low_latency = 1; -  	sierra_send_setup(tty, port);  	/* start up the interrupt endpoint if we have one */  |