summaryrefslogtreecommitdiff
path: root/drivers/usb/dwc3/gadget.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-06-06 08:24:15 -0600
committerTom Rini <trini@konsulko.com>2024-06-06 08:24:15 -0600
commit1ebd659cf020843fd8e8ef90d85a66941cbab6ec (patch)
tree08c252718961a691139c4848052596b0ec2910ca /drivers/usb/dwc3/gadget.c
parentd908143b2baa6c3a707e7aed6eb0eca844f73dc9 (diff)
parent4339138a2086f8449b9356130cb6e97a81aa8679 (diff)
Merge tag 'u-boot-dfu-20240606' of https://source.denx.de/u-boot/custodians/u-boot-dfu
u-boot-dfu-20240606 - dwc3 fix crash when ep0 stalls or gadget is stopped - Kconfig build fix for DFU_SF (SPI flash DFU driver)
Diffstat (limited to 'drivers/usb/dwc3/gadget.c')
-rw-r--r--drivers/usb/dwc3/gadget.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 39c19d94de1..7d6bcc2627f 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -249,7 +249,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
list_del(&req->list);
req->trb = NULL;
- if (req->request.length)
+ if (req->request.dma && req->request.length)
dwc3_flush_cache((uintptr_t)req->request.dma, req->request.length);
if (req->request.status == -EINPROGRESS)
@@ -257,7 +257,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
if (dwc->ep0_bounced && dep->number == 0)
dwc->ep0_bounced = false;
- else
+ else if (req->request.dma)
usb_gadget_unmap_request(&dwc->gadget, &req->request,
req->direction);