aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-davinci/dma.c
diff options
context:
space:
mode:
authorSandeep Paulraj <s-paulraj@ti.com>2009-09-16 18:09:59 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2009-11-25 10:21:24 -0800
commit51c99e0498c637bf43fb3be786d121d8dceef337 (patch)
tree3cdaeeb6bf68cc78b8f6bb4a9e15a8cdc2ba1793 /arch/arm/mach-davinci/dma.c
parent7761ef67930dac37f90aaf0ffcd6b1f473c07dfc (diff)
DaVinci: EDMA: Fix bug in edma_free_cont_slots API
In the edma_free_cont_slots API, the variable slot was being modified and then used in the for loop. This results in incorrect behaviour when the API is used. Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/dma.c')
-rw-r--r--arch/arm/mach-davinci/dma.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index f2e57d27295..89ce3e1a7ab 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -813,7 +813,7 @@ EXPORT_SYMBOL(edma_alloc_cont_slots);
*/
int edma_free_cont_slots(unsigned slot, int count)
{
- unsigned ctlr;
+ unsigned ctlr, slot_to_free;
int i;
ctlr = EDMA_CTLR(slot);
@@ -826,11 +826,11 @@ int edma_free_cont_slots(unsigned slot, int count)
for (i = slot; i < slot + count; ++i) {
ctlr = EDMA_CTLR(i);
- slot = EDMA_CHAN_SLOT(i);
+ slot_to_free = EDMA_CHAN_SLOT(i);
- memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot),
+ memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot_to_free),
&dummy_paramset, PARM_SIZE);
- clear_bit(slot, edma_info[ctlr]->edma_inuse);
+ clear_bit(slot_to_free, edma_info[ctlr]->edma_inuse);
}
return 0;