usb: musb: host: move DMA engine check from musb_tx_dma_set_mode_cppi_tusb() to its...
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Tue, 31 May 2016 15:05:05 +0000 (10:05 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Jun 2016 21:58:59 +0000 (14:58 -0700)
Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
looks incomplete: the DMA engine checks are  done outside the Mentor/UX500
handler  but inside the CPPI/TUSB handler. Move the checks out of the CPPI/
TUSB handler into its caller, musb_tx_dma_program().

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
[b-liu@ti.com: revise subject prefix]
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/musb/musb_host.c

index dd1ebde0278668b2f62fbdbb21cb936a59346c52..45a489e3aeaf3105e95b2ee17a6710894fd675e8 100644 (file)
@@ -684,9 +684,6 @@ static int musb_tx_dma_set_mode_cppi_tusb(struct dma_controller *dma,
 {
        struct dma_channel *channel = hw_ep->tx_channel;
 
-       if (!is_cppi_enabled(hw_ep->musb) && !tusb_dma_omap(hw_ep->musb))
-               return -ENODEV;
-
        channel->actual_len = 0;
 
        /*
@@ -710,9 +707,11 @@ static bool musb_tx_dma_program(struct dma_controller *dma,
        if (musb_dma_inventra(hw_ep->musb) || musb_dma_ux500(hw_ep->musb))
                res = musb_tx_dma_set_mode_mentor(dma, hw_ep, qh, urb,
                                                 offset, &length, &mode);
-       else
+       else if (is_cppi_enabled(hw_ep->musb) || tusb_dma_omap(hw_ep->musb))
                res = musb_tx_dma_set_mode_cppi_tusb(dma, hw_ep, qh, urb,
                                                     offset, &length, &mode);
+       else
+               return false;
        if (res)
                return false;