On 08/12/2014 09:13 PM, Bin Liu wrote:
CPPI TX does not transmit ZLP for TX transfers which - transfer size is multiple of EP packet size, - and URB_ZERO_PACKET is set in urb->transfer_flags.
The fix is transmitting the ZLP using PIO mode after the CPPI TX is done.
Validated using the following usbtest write case for MUSB host mode.
# testusb -t1 -c1
Signed-off-by: Bin Liu <b-liu@xxxxxx> --- drivers/usb/musb/musb_cppi41.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/musb/musb_cppi41.c b/drivers/usb/musb/musb_cppi41.c index 5989def..e9a0e54 100644 --- a/drivers/usb/musb/musb_cppi41.c +++ b/drivers/usb/musb/musb_cppi41.c @@ -39,6 +39,7 @@ struct cppi41_dma_channel { u32 transferred; u32 packet_sz; struct list_head tx_check; + u32 tx_zlp;
Why not *bool"?
Will fix it. I am not used to use 'bool', so...
OK, but you sure know *int* which would also have been more appropriate here? :-)
WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html