On 08/12/2014 07:05 PM, Bin Liu wrote: >> Don't you need to check for (urb->transfer_flags & URB_ZERO_PACKET) >> somewhere here? I'd not expect an extra 0-byte packet at the end of a >> transfer unless this flag is set. > > mode is set to 1 when (urb->transfer_flags & URB_ZERO_PACKET), in > musb_tx_dma_program in musb_host.c. Hmm, yes, but only for (!CONFIG_USB_INVENTRA_DMA && !CONFIG_USB_UX500_DMA). Otherwise, mode will be 1 'if (length > pkt_size)', so on those platforms, the driver will now send terminating ZLPs whenever a transfer spans across multiple packets. Or am I missing anything? You might need to pass a pointer to the urb or its transfer_flags down to channel_program(). Thanks, Daniel -- 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