The following commit has been merged in the linux branch: commit 70cf644c34a5f2dd183b4f01b0e8cdac834c1e17 Author: Anuj Aggarwal anuj.aggarwal@ti.com Date: Wed Oct 14 09:56:34 2009 -0700
omap: SDMA: Fixing bug in omap_dma_set_global_params()
Argument tparams was not being used to program global register GCR.HI_THREAD_RESERVED. This patch fixes the same.
Signed-off-by: Anuj Aggarwal anuj.aggarwal@ti.com Signed-off-by: Tony Lindgren tony@atomide.com
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index fd3154a..0eb676d 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c @@ -829,10 +829,10 @@ EXPORT_SYMBOL(omap_free_dma); * * @param arb_rate * @param max_fifo_depth - * @param tparams - Number of thereads to reserve : DMA_THREAD_RESERVE_NORM - * DMA_THREAD_RESERVE_ONET - * DMA_THREAD_RESERVE_TWOT - * DMA_THREAD_RESERVE_THREET + * @param tparams - Number of threads to reserve : DMA_THREAD_RESERVE_NORM + * DMA_THREAD_RESERVE_ONET + * DMA_THREAD_RESERVE_TWOT + * DMA_THREAD_RESERVE_THREET */ void omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams) @@ -844,11 +844,14 @@ omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams) return; }
+ if (max_fifo_depth == 0) + max_fifo_depth = 1; if (arb_rate == 0) arb_rate = 1;
- reg = (arb_rate & 0xff) << 16; - reg |= (0xff & max_fifo_depth); + reg = 0xff & max_fifo_depth; + reg |= (0x3 & tparams) << 12; + reg |= (arb_rate & 0xff) << 16;
dma_write(reg, GCR); }