Hello. Anil Shetty wrote:
Add support for MUSB Host DMA transfers greater than MUSBHSDMA max channel length, so that transfers greater than max channel length won't be truncated.
Signed-off-by: Anil Shetty <anil@xxxxxx> Cc: Felipe Balbi <balbi@xxxxxx>
[...]
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c index 07b1243..081825c 100644 --- a/drivers/usb/musb/musb_host.c +++ b/drivers/usb/musb/musb_host.c
[...]
@@ -1278,7 +1279,7 @@ void musb_host_tx(struct musb *musb, u8 epnum) offset = d->offset; length = d->length; } - } else if (dma) { + } else if (dma && (urb->transfer_buffer_length == qh->offset)) {
Parens not necessary here (but I've already noted that).
@@ -1310,7 +1312,7 @@ void musb_host_tx(struct musb *musb, u8 epnum) urb->actual_length = qh->offset; musb_advance_schedule(musb, urb, hw_ep, USB_DIR_OUT); return; - } else if (usb_pipeisoc(pipe) && dma) { + } else if ((usb_pipeisoc(pipe) && dma) || (transfer_pending && dma)) {
This can be expressed in a shorter way: } else if ((usb_pipeisoc(pipe) || transfer_pending) && dma)) { WBR, Sergei -- 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