Dear Troy Kisky, > On 9/20/2013 3:58 AM, Marek Vasut wrote: > > Dear Troy Kisky, > > > >> Only perform one copy, either in the bounce > >> routine for IN transfers, or the debounce > >> rtn for OUT transfer. > >> > >> On out transfers, only copy the number > >> of bytes received from the bounce buffer > >> > >> Signed-off-by: Troy Kisky <troy.ki...@boundarydevices.com> > >> > >> --- > >> v4: no change > > > > Just a question here. Are you sure we never Send AND Reserve the data in > > one turn? Because that would need two copyings. > > ??? s/Reserve/Receive/ > > As far as I'm aware, a single buffer is only ever used to capture or > provide data not both. > But, if 2 transfers were queued, an OUT and then an IN using the same > buffer, if it worked before > this patch, it should work after as well.
How come? Before, it was doing flush before and inval after the transfer, right ? btw what does this part of the patch do/mean ? Why is it there? @@ -387,10 +383,9 @@ static void handle_ep_complete(struct mv_ep *ep) num, in ? "in" : "out", item->info, item->page0); len = (item->info >> 16) & 0x7fff; - - mv_debounce(ep); - ep->req.length -= len; + mv_debounce(ep, in); + DBG("ept%d %s complete %x\n", num, in ? "in" : "out", len); ep->req.complete(&ep->ep, &ep->req); Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot