[U-Boot] [u-boot 31/40] usb: dwc3: ep0: preparation for implementing chained TRB

Lukasz Majewski
2015-02-16T11:40:26Z

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>

--
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group