> > 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. > Thanks, Alan & Steve, I will have a patch to fix this in chipidea udc driver. Peter ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥