From 2505b09b78986c2ea2d2cebb1a00651de2b1196f Mon Sep 17 00:00:00 2001 From: Chunfeng Yun Date: Thu, 21 Oct 2021 13:33:07 +0800 Subject: [PATCH] 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 Signed-off-by: Chunfeng Yun --- drivers/usb/mtu3/mtu3_qmu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/mtu3/mtu3_qmu.c b/drivers/usb/mtu3/mtu3_qmu.c index 95eaf6d236..e8dc0095ab 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; } -- 2.39.5