USB: fsl_qe_udc: send ZLP when zero flag and length % maxpacket == 0
commitd834508e159fe8936f9e7fd941b1e2fe9a209d4b
authorValentin Longchamp <valentin.longchamp@keymile.com>
Wed, 23 Mar 2011 16:47:00 +0000 (23 17:47 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 13 Apr 2011 22:57:19 +0000 (13 15:57 -0700)
treebdf1a95de3009fd17a7863907b593a92466f0ab8
parentcb62d65f966146a39fdde548cb474dacf1d00fa5
USB: fsl_qe_udc: send ZLP when zero flag and length % maxpacket == 0

The driver did not take the zero flag in the USB request. If the
request length is the same as the endpoint's maxpacket, an additional
ZLP with no data has to be transmitted.

The method used here is inspired to what is done in fsl_udc_core.c
(and pxa27x_udc.c and at91_udc.c) where this is supported.

There already was a discussion about this topic with people from
Keymile, and I propose here a better implementation:

http://thread.gmane.org/gmane.linux.usb.general/38951

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Acked-by: Li Yang <leoli@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/gadget/fsl_qe_udc.c