diff options
| author | sakumisu <[email protected]> | 2025-11-09 22:28:52 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2025-11-09 22:28:52 +0800 |
| commit | 757187e967f8ce393beb87b97c7446845f40ad43 (patch) | |
| tree | 3fcb6d4d815046fc7fc451a8d1cea215f8869696 | |
| parent | a33396fa93c6824ad898afe566041f4a9bfb00e4 (diff) | |
fix(port/dwc2/usb_dc_dwc2): invalid cache before all read setup
Signed-off-by: sakumisu <[email protected]>
| -rw-r--r-- | port/dwc2/usb_dc_dwc2.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/port/dwc2/usb_dc_dwc2.c b/port/dwc2/usb_dc_dwc2.c index 0d94719e..0234d9e8 100644 --- a/port/dwc2/usb_dc_dwc2.c +++ b/port/dwc2/usb_dc_dwc2.c @@ -341,6 +341,8 @@ static void dwc2_ep0_start_read_setup(uint8_t busid, uint8_t *psetup) USB_OTG_OUTEP(0U)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_STUPCNT; if (g_dwc2_udc[busid].user_params.device_dma_enable) { + usb_dcache_invalidate((uintptr_t)&g_dwc2_udc[busid].setup, USB_ALIGN_UP(8, CONFIG_USB_ALIGN_SIZE)); + USB_OTG_OUTEP(0U)->DOEPDMA = (uint32_t)psetup; /* EP enable */ USB_OTG_OUTEP(0U)->DOEPCTL |= USB_OTG_DOEPCTL_EPENA | USB_OTG_DOEPCTL_USBAEP; @@ -830,7 +832,6 @@ int usbd_ep_set_stall(uint8_t busid, const uint8_t ep) } if ((ep_idx == 0) && g_dwc2_udc[busid].user_params.device_dma_enable) { - usb_dcache_invalidate((uintptr_t)&g_dwc2_udc[busid].setup, USB_ALIGN_UP(8, CONFIG_USB_ALIGN_SIZE)); dwc2_ep0_start_read_setup(busid, (uint8_t *)&g_dwc2_udc[busid].setup); } |
