On 05/04/2016 11:01 PM, Bin Liu wrote:
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 <[email protected]> --- drivers/usb/musb/musb_host.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) Index: usb/drivers/usb/musb/musb_host.c =================================================================== --- usb.orig/drivers/usb/musb/musb_host.c +++ usb/drivers/usb/musb/musb_host.c @@ -678,9 +678,6 @@ static int musb_tx_dma_set_mode_cppi_tus { 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;
Since this function has only two lines now, does it make sense to get rid of it completely?
That would be the reverse to what Tony's patches did. I think gcc will inline this function anyway.
Regards, -Bin./* @@ -704,9 +701,11 @@ static bool musb_tx_dma_program(struct d 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;
Well, using ret = -EINVAL; would have been more appropriate, I'd respin if you won't mind?
if (res) return false;
MBR, Seregi -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
