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 wont be truncated.
It's "won't". Sorry for the grammar nitpicking... :-)
Signed-off-by: Anil Shetty <anil@xxxxxx> Cc: Felipe Balbi <me@xxxxxxxxxxxxxxx> --- drivers/usb/musb/musb_host.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c index 07b1243..dfa8b6d 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 around == are not necessary.
done = true; } else { /* see if we need to send more data, or ZLP */ @@ -1291,6 +1292,7 @@ void musb_host_tx(struct musb *musb, u8 epnum) if (!done) { offset = qh->offset; length = urb->transfer_buffer_length - offset; + transfer_pending = true; } } } @@ -1310,7 +1312,11 @@ 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 (transfer_pending && dma) {
Why not extend the condition instead? You're just duplicating the same code. And could you keep a tab before *if*?
+ if (musb_tx_dma_program(musb->dma_controller, hw_ep, qh, urb, + offset, length)) + return; + } else if (usb_pipeisoc(pipe) && dma) { if (musb_tx_dma_program(musb->dma_controller, hw_ep, qh, urb, offset, length)) { if (is_cppi_enabled() || tusb_dma_omap())
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