diff mbox

dmaengine: ti-dma-crossbar: Fix dra7 reserve function

Message ID 20170824140259.5007-1-asmirnov@ilbers.de (mailing list archive)
State New, archived
Headers show

Commit Message

Alexander Smirnov Aug. 24, 2017, 2:02 p.m. UTC
DMA crossbar uses 'xbar->dma_inuse' variable to manage allocated routes.
Each bit represents respective DMA channel. If the channel is free, bit
is set to '0', if channel is allocated, bit should be set to '1'.

In reserve function, the bits for requested DMA channels are cleared, so
they are not really reserved, but freed and become ready for allocation.

Signed-off-by: Alexander Smirnov <asmirnov@ilbers.de>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/ti-dma-crossbar.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Vinod Koul Aug. 28, 2017, 4:32 p.m. UTC | #1
On Thu, Aug 24, 2017 at 05:02:59PM +0300, Alexander Smirnov wrote:
> DMA crossbar uses 'xbar->dma_inuse' variable to manage allocated routes.
> Each bit represents respective DMA channel. If the channel is free, bit
> is set to '0', if channel is allocated, bit should be set to '1'.
> 
> In reserve function, the bits for requested DMA channels are cleared, so
> they are not really reserved, but freed and become ready for allocation.

Applied, thanks
diff mbox

Patch

diff --git a/drivers/dma/ti-dma-crossbar.c b/drivers/dma/ti-dma-crossbar.c
index e107779..404cdb8 100644
--- a/drivers/dma/ti-dma-crossbar.c
+++ b/drivers/dma/ti-dma-crossbar.c
@@ -299,7 +299,7 @@  static const struct of_device_id ti_dra7_master_match[] = {
 static inline void ti_dra7_xbar_reserve(int offset, int len, unsigned long *p)
 {
 	for (; len > 0; len--)
-		clear_bit(offset + (len - 1), p);
+		set_bit(offset + (len - 1), p);
 }
 
 static int ti_dra7_xbar_probe(struct platform_device *pdev)