Hi Ran, On Wed, Nov 18, 2020 at 11:02 AM Ran Wang <ran.wan...@nxp.com> wrote: > > Hi Bin, > > On Wednesday, November 18, 2020 11:06 AM Ran Wang wrote: > > > > For bulk IN transfer, the codes will set ISP flag to request event TRB being > > generated by xHC for case of short packet. So in buffer-cross-64K-boundary > > case (which we will divide payload and enqueuqe more than 1 transfer TRB), > > if > > the first TRB ends up with a short packet condition it will trigger an short > > packet code transfer event per that flag and cause more than 1 event TRB > > gegerated for this transfer. > > > > However, current codes will only handle the first transfer event TRB then > > mark > > current transfer completed, which causing next transfer failure due to event > > TRB mis-match. > > > > Such issue has been observed on some Layerscape platforms (LS1028A, > > LS1088A, etc) with USB ethernet device > > > > This patch adds a loop to make sure the event TRB for last transfer TRB has > > been handled in time. > > > > Signed-off-by: Ran Wang <ran.wan...@nxp.com> > > --- > > Change in v3: > > - Update commit message according to v2 feedback . > > - Replace (void *) with (uintptr_t) to fix below armv7 compile warning: > > ... > > drivers/usb/host/xhci-ring.c: In function 'xhci_bulk_tx': > > drivers/usb/host/xhci-ring.c:726:6: warning: cast to pointer from integer > > of > > different size [-Wint-to-pointer-cast] > > 726 | if ((void *)le64_to_cpu(event->trans_event.buffer) != > > last_transfer_trb_addr) { > > | ^ > > ... > > For this version, I newly added a fix for above issue, please help check if > it's OK for you. >
Are you sure you sent the correct patch? Because I see neither the commit message was fixed, nor the fix you mentioned "Replace (void *) with (uintptr_t)" Regards, Bin