On Wed, Nov 27, 2013 at 12:38 AM, Bin Liu <binmlist@xxxxxxxxx> wrote: > On Thu, Nov 21, 2013 at 4:40 AM, Yingchun Li <sword.l.dragon@xxxxxxxxx> wrote: >> hi, >> if musb bulk_split is enable, the segment size will be set according >> to hw_ep->max_packet_sz_tx, and the segment will be writen to fifo. >> But after the first tranfser end, the segment size will be set no larger >> than qh->maxpacket (in musb_host_tx),and the bluk_split make no sense. >> so please check the following patch, I have tested it on my board. > > For the platforms which do not support bulk split/combine, I would > think the right fix should be set musb->bulk_combine = false, and > musb->bulk_split = false at the end of musb_core_init() in > musb_core.c. Is it enabled/disabled by hardware features: musb_core.c-->musb_core_init if (reg & MUSB_CONFIGDATA_MPTXE) { strcat(aInfo, ", bulk split"); musb->bulk_split = true; } > -Bin. > >> >> diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c >> index 6582a20..f251132 100644 >> --- a/drivers/usb/musb/musb_host.c >> +++ b/drivers/usb/musb/musb_host.c >> @@ -1455,8 +1455,8 @@ done: >> * (and presumably, FIFO is not half-full) we should write *two* >> * packets before updating TXCSR; other docs disagree... >> */ >> - if (length > qh->maxpacket) >> - length = qh->maxpacket; >> + if (length > qh->segsize) >> + length = qh->segsize; >> /* Unmap the buffer so that CPU can use it */ >> usb_hcd_unmap_urb_for_dma(musb->hcd, urb); >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-usb" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html