X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=drivers%2Fusb%2Fdwc3%2Fgadget.c;h=d45fae044c4a0c04cc34236aec11ca4c6327bb98;hb=83d290c56fab2d38cd1ab4c4cc7099559c1d5046;hp=f3d649a5ee2f85d66bef3c4f5b1d2a5f55a26a6d;hpb=20913018fbce5a2e3c93b6eeb56e67460e29542c;p=platform%2Fkernel%2Fu-boot.git diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index f3d649a..d45fae0 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0 /** * gadget.c - DesignWare USB3 DRD Controller Gadget Framework Link * @@ -10,19 +11,17 @@ * to uboot. * * commit 8e74475b0e : usb: dwc3: gadget: use udc-core's reset notifier - * - * SPDX-License-Identifier: GPL-2.0 */ #include #include #include #include +#include #include #include #include -#include #include "core.h" #include "gadget.h" @@ -244,7 +243,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req, list_del(&req->list); req->trb = NULL; - dwc3_flush_cache((int)req->request.dma, req->request.length); + dwc3_flush_cache((uintptr_t)req->request.dma, req->request.length); if (req->request.status == -EINPROGRESS) req->request.status = status; @@ -771,8 +770,8 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, trb->ctrl |= DWC3_TRB_CTRL_HWO; - dwc3_flush_cache((int)dma, length); - dwc3_flush_cache((int)trb, sizeof(*trb)); + dwc3_flush_cache((uintptr_t)dma, length); + dwc3_flush_cache((uintptr_t)trb, sizeof(*trb)); } /* @@ -1769,7 +1768,7 @@ static int dwc3_cleanup_done_reqs(struct dwc3 *dwc, struct dwc3_ep *dep, slot %= DWC3_TRB_NUM; trb = &dep->trb_pool[slot]; - dwc3_flush_cache((int)trb, sizeof(*trb)); + dwc3_flush_cache((uintptr_t)trb, sizeof(*trb)); __dwc3_cleanup_done_trbs(dwc, dep, req, trb, event, status); dwc3_gadget_giveback(dep, req, status); @@ -2668,11 +2667,12 @@ void dwc3_gadget_uboot_handle_interrupt(struct dwc3 *dwc) int i; struct dwc3_event_buffer *evt; + dwc3_thread_interrupt(0, dwc); + + /* Clean + Invalidate the buffers after touching them */ for (i = 0; i < dwc->num_event_buffers; i++) { evt = dwc->ev_buffs[i]; - dwc3_flush_cache((int)evt->buf, evt->length); + dwc3_flush_cache((uintptr_t)evt->buf, evt->length); } - - dwc3_thread_interrupt(0, dwc); } }