USB: usbtest: use URB_ZERO_PACKET for BULK-OUT transfers
Executing | testusb -a -c 1 -t 3 -v 421 -s 2048 does not complete on the gadget side. g_zero enqueues a 4096 bytes long buffer. The host sends 2048bytes which is a multiple of wMaxPacketSize (either 64 or 512 bytes). The host is done with sending data but the gadget waits for more. Since the protocol does not include transfer-length-field sending a terminating zero packet seems the only way out. Reviewed-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
39eb4ed556
commit
7c79d09435
|
@ -359,8 +359,10 @@ static int simple_io(
|
|||
urb->context = &completion;
|
||||
while (retval == 0 && iterations-- > 0) {
|
||||
init_completion(&completion);
|
||||
if (usb_pipeout(urb->pipe))
|
||||
if (usb_pipeout(urb->pipe)) {
|
||||
simple_fill_buf(urb);
|
||||
urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
}
|
||||
retval = usb_submit_urb(urb, GFP_KERNEL);
|
||||
if (retval != 0)
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue