aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunfeng Yun <chunfeng.yun@mediatek.com>2021-10-21 13:33:07 +0800
committerMarek Vasut <marex@denx.de>2021-11-03 08:47:57 +0100
commit2c4f21763d7132bc355d343347032bd6d2f199f4 (patch)
treedffb53c314135e733235bf06b79ca5201fb3b9bc
parentb8bfe05282c12fbf006957a2564127d3c1be3e78 (diff)
downloadu-boot-2c4f21763d7132bc355d343347032bd6d2f199f4.zip
u-boot-2c4f21763d7132bc355d343347032bd6d2f199f4.tar.gz
u-boot-2c4f21763d7132bc355d343347032bd6d2f199f4.tar.bz2
usb: mtu3: flush cache for the first GPD when allocate GPD ring
When allocate the GPD ring, and tell its address to the controller, then the driver starts or resumes the QMU, the controller will try to access the first GPD, so need flush the first one to avoid wrong GPD status. Reported-by: Xin Lin <Xin.Lin@mediatek.com> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
-rw-r--r--drivers/usb/mtu3/mtu3_qmu.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/mtu3/mtu3_qmu.c b/drivers/usb/mtu3/mtu3_qmu.c
index 95eaf6d..e8dc009 100644
--- a/drivers/usb/mtu3/mtu3_qmu.c
+++ b/drivers/usb/mtu3/mtu3_qmu.c
@@ -112,6 +112,7 @@ int mtu3_gpd_ring_alloc(struct mtu3_ep *mep)
memset(gpd, 0, QMU_GPD_RING_SIZE);
ring->dma = (dma_addr_t)gpd;
gpd_ring_init(ring, gpd);
+ mtu3_flush_cache((uintptr_t)gpd, sizeof(*gpd));
return 0;
}