mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
usb: mtu3: flush cache for next GPD
When flush cache of the current GPD and resume QMU, the controller will try to access the next GPD after processing the current one, if not flush the next GPD, the controller may get wrong GPD status. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
This commit is contained in:
parent
b764bf21e6
commit
044d7003a7
1 changed files with 3 additions and 0 deletions
|
@ -198,6 +198,7 @@ static int mtu3_prepare_tx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq)
|
|||
|
||||
enq->flag &= ~GPD_FLAGS_HWO;
|
||||
gpd->next_gpd = cpu_to_le32((u32)gpd_virt_to_dma(ring, enq));
|
||||
mtu3_flush_cache((uintptr_t)enq, sizeof(*gpd));
|
||||
|
||||
if (req->zero)
|
||||
gpd->ext_flag |= GPD_EXT_FLAG_ZLP;
|
||||
|
@ -234,6 +235,8 @@ static int mtu3_prepare_rx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq)
|
|||
|
||||
enq->flag &= ~GPD_FLAGS_HWO;
|
||||
gpd->next_gpd = cpu_to_le32((u32)gpd_virt_to_dma(ring, enq));
|
||||
mtu3_flush_cache((uintptr_t)enq, sizeof(*gpd));
|
||||
|
||||
gpd->flag |= GPD_FLAGS_IOC | GPD_FLAGS_HWO;
|
||||
|
||||
mreq->gpd = gpd;
|
||||
|
|
Loading…
Add table
Reference in a new issue