mirror of
https://github.com/torvalds/linux.git
synced 2024-11-06 03:51:48 +00:00
usb: ehci: only prepare zero packet for out transfer if required
Obviously, ZLP is only required for transfer of OUT direction, so just take same policy with UHCI for ZLP packet. Signed-off-by: Ming Lei <tom.leiming@gmail.com> Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
0412560e18
commit
9a971dda82
@ -722,7 +722,8 @@ qh_urb_transaction (
|
||||
|
||||
/*
|
||||
* control requests may need a terminating data "status" ack;
|
||||
* bulk ones may need a terminating short packet (zero length).
|
||||
* other OUT ones may need a terminating short packet
|
||||
* (zero length).
|
||||
*/
|
||||
if (likely (urb->transfer_buffer_length != 0)) {
|
||||
int one_more = 0;
|
||||
@ -731,7 +732,7 @@ qh_urb_transaction (
|
||||
one_more = 1;
|
||||
token ^= 0x0100; /* "in" <--> "out" */
|
||||
token |= QTD_TOGGLE; /* force DATA1 */
|
||||
} else if (usb_pipebulk (urb->pipe)
|
||||
} else if (usb_pipeout(urb->pipe)
|
||||
&& (urb->transfer_flags & URB_ZERO_PACKET)
|
||||
&& !(urb->transfer_buffer_length % maxpacket)) {
|
||||
one_more = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user