mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
usb: gadget: mv_udc: flush item before head
Make sure the transfer descriptor is flushed before the queue is updated so that the controller will not see old information. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
This commit is contained in:
parent
5a90443048
commit
5fc2e99732
1 changed files with 2 additions and 3 deletions
|
@ -335,21 +335,20 @@ static int mv_ep_queue(struct usb_ep *ep,
|
|||
item->info = INFO_BYTES(len) | INFO_IOC | INFO_ACTIVE;
|
||||
item->page0 = (uint32_t)mv_ep->b_buf;
|
||||
item->page1 = ((uint32_t)mv_ep->b_buf & 0xfffff000) + 0x1000;
|
||||
mv_flush_qtd(num);
|
||||
|
||||
head->next = (unsigned) item;
|
||||
head->info = 0;
|
||||
|
||||
DBG("ept%d %s queue len %x, buffer %p\n",
|
||||
num, in ? "in" : "out", len, mv_ep->b_buf);
|
||||
mv_flush_qh(num);
|
||||
|
||||
if (in)
|
||||
bit = EPT_TX(num);
|
||||
else
|
||||
bit = EPT_RX(num);
|
||||
|
||||
mv_flush_qh(num);
|
||||
mv_flush_qtd(num);
|
||||
|
||||
writel(bit, &udc->epprime);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue