Message ID | 1423212497-11970-32-git-send-email-kishon@ti.com |
---|---|
State | Accepted |
Delegated to: | Łukasz Majewski |
Headers | show |
Hi Kishon, > No functional change. Modified few things so that there are no > code duplication while implementing chained TRB. > > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> > --- > drivers/usb/dwc3/ep0.c | 20 ++++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > > diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c > index 977d6d4..fce2558 100644 > --- a/drivers/usb/dwc3/ep0.c > +++ b/drivers/usb/dwc3/ep0.c > @@ -761,7 +761,10 @@ static void dwc3_ep0_complete_data(struct dwc3 > *dwc, struct usb_request *ur; > struct dwc3_trb *trb; > struct dwc3_ep *ep0; > - u32 transferred; > + unsigned transfer_size = 0; > + unsigned maxp; > + void *buf; > + u32 transferred = 0; > u32 status; > u32 length; > u8 epnum; > @@ -790,18 +793,19 @@ static void dwc3_ep0_complete_data(struct dwc3 > *dwc, } > > ur = &r->request; > + buf = ur->buf; > > length = trb->size & DWC3_TRB_SIZE_MASK; > > - if (dwc->ep0_bounced) { > - unsigned transfer_size = ur->length; > - unsigned maxp = ep0->endpoint.maxpacket; > + maxp = ep0->endpoint.maxpacket; > > - transfer_size += (maxp - (transfer_size % maxp)); > - transferred = min_t(u32, ur->length, > - transfer_size - length); > + if (dwc->ep0_bounced) { > + transfer_size = roundup((ur->length - transfer_size), > + maxp); > + transferred = min_t(u32, ur->length - transferred, > + transfer_size - length); > dwc3_flush_cache((int)dwc->ep0_bounce, > DWC3_EP0_BOUNCE_SIZE); > - memcpy(ur->buf, dwc->ep0_bounce, transferred); > + memcpy(buf, dwc->ep0_bounce, transferred); > } else { > transferred = ur->length - length; > } Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index 977d6d4..fce2558 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c @@ -761,7 +761,10 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc, struct usb_request *ur; struct dwc3_trb *trb; struct dwc3_ep *ep0; - u32 transferred; + unsigned transfer_size = 0; + unsigned maxp; + void *buf; + u32 transferred = 0; u32 status; u32 length; u8 epnum; @@ -790,18 +793,19 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc, } ur = &r->request; + buf = ur->buf; length = trb->size & DWC3_TRB_SIZE_MASK; - if (dwc->ep0_bounced) { - unsigned transfer_size = ur->length; - unsigned maxp = ep0->endpoint.maxpacket; + maxp = ep0->endpoint.maxpacket; - transfer_size += (maxp - (transfer_size % maxp)); - transferred = min_t(u32, ur->length, - transfer_size - length); + if (dwc->ep0_bounced) { + transfer_size = roundup((ur->length - transfer_size), + maxp); + transferred = min_t(u32, ur->length - transferred, + transfer_size - length); dwc3_flush_cache((int)dwc->ep0_bounce, DWC3_EP0_BOUNCE_SIZE); - memcpy(ur->buf, dwc->ep0_bounce, transferred); + memcpy(buf, dwc->ep0_bounce, transferred); } else { transferred = ur->length - length; }
No functional change. Modified few things so that there are no code duplication while implementing chained TRB. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> --- drivers/usb/dwc3/ep0.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)