]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: mtu3: flush cache for the first GPD when allocate GPD ring
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Thu, 21 Oct 2021 05:33:07 +0000 (13:33 +0800)
committerMarek Vasut <marex@denx.de>
Wed, 3 Nov 2021 07:47:57 +0000 (08:47 +0100)
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>
drivers/usb/mtu3/mtu3_qmu.c

index 95eaf6d23659967498fb2b3c48e5eb92b9c974af..e8dc0095ab588df590974af849625d48d1e990b0 100644 (file)
@@ -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;
 }