usb: musb: Fix DMA desired mode for Mentor DMA engine
authorCristian Birsan <cristian.birsan@microchip.com>
Thu, 11 Feb 2016 15:58:17 +0000 (08:58 -0700)
committerFelipe Balbi <balbi@kernel.org>
Wed, 17 Feb 2016 14:32:50 +0000 (16:32 +0200)
Commit 754fe4a92c07 ("usb: musb: Remove ifdefs for TX DMA for musb_host.c")
introduces a problem setting the desired channel mode for the Mentor DMA
engine.

There is a case where an address is incorrectly assigned to the DMA
channel desired mode when it should instead be assigned the actual mode
value. This results in the value of channel->desired_mode not being
correct.

Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
Signed-off-by: Joshua Henderson <joshua.henderson@microchip.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/musb/musb_host.c

index 795a45b1b25bacb016552b4d0635166965ebfce6..79d081883628ae797c2cddd0b5df7e02c848e9f7 100644 (file)
@@ -662,7 +662,7 @@ static int musb_tx_dma_set_mode_mentor(struct dma_controller *dma,
                csr &= ~(MUSB_TXCSR_AUTOSET | MUSB_TXCSR_DMAMODE);
                csr |= MUSB_TXCSR_DMAENAB; /* against programmer's guide */
        }
-       channel->desired_mode = mode;
+       channel->desired_mode = *mode;
        musb_writew(epio, MUSB_TXCSR, csr);
 
        return 0;