MLK-17312-1 usb: cdns3: gadget: prepare setup packet buffer before receiving it
authorPeter Chen <peter.chen@nxp.com>
Wed, 27 Dec 2017 03:09:11 +0000 (11:09 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:52:28 +0000 (14:52 -0500)
commitaa77c72e25493f066a42e9312dbf20b19f625ac1
tree9ef8ba55badeb8ae6e14759ebfd6516a5fd32ebd
parent1ad7798458aa6c8681783a1b8f66bc46dd3da717
MLK-17312-1 usb: cdns3: gadget: prepare setup packet buffer before receiving it

At current setup packet handling flow, the setup packet buffer
is only prepared after the controller receives the setup packet,
then stores it at its internal buffer, and trigger DESCMIS interrupt
(Transfer descriptor missing) to prepare TRB for it.

The shortcoming of this design is there is an extra DESCMIS interrupt,
and consume more time on enumeration process. As an improvement,
we parepare setup buffer beforehand, it is prepared at below situations:
- After bus reset has finished.
- For non-data stage setup transfers, prepare it before sending ACK for
status stage.
- For data stage setup transfers, prepare it after data stage but
before sending ACK for status stage.

Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/cdns3/gadget.c