Re: 64 byte EP0 OUT data transfer issue on Chipidea highspeed dual role controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 29, 2015 at 7:16 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 29 Jun 2015, Peter Chen wrote:
>
>> Just like Steve pointed, it should be a ZLT problem, do you have
>> below patch in your tree, and the host may not send zlt, but you
>> may queue an zero-length request, the f_hid does not set req->zero
>> flag either.
>>
>> commit 953c66469735aed8d2ada639a72b150f01dae605
>> Author: Abbas Raza <Abbas_Raza@xxxxxxxxxx>
>> Date:   Thu Jul 17 19:34:31 2014 +0800
>>
>>     usb: chipidea: udc: Disable auto ZLP generation on ep0
>>
>>
>> If it still has problem, send me apps if possible (with needed kernel
>> patches).
>
> Note that a UDC should _never_ queue an extra zero-length packet for an
> OUT transfer, no matter how req->zero is set.  In other words,
> req->zero is supposed to affect only IN transfers.
>
Yes UDC gadgets receive packets sent by the host on OUT transfers. If
ZLT transfers are needed for the protocol, a short transfer is needed
to end an OUT sequence and it must be sent by the sender, in this case
the host. The UDC should detect receiving a zero length EP0 OUT and
that signals the end of the 64 byte transfer from host to gadget.

Regards, Steve
--
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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux