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>
This commit is contained in:
parent
7761ef6793
commit
51c99e0498
1 changed files with 4 additions and 4 deletions
|
@ -813,7 +813,7 @@ EXPORT_SYMBOL(edma_alloc_cont_slots);
|
||||||
*/
|
*/
|
||||||
int edma_free_cont_slots(unsigned slot, int count)
|
int edma_free_cont_slots(unsigned slot, int count)
|
||||||
{
|
{
|
||||||
unsigned ctlr;
|
unsigned ctlr, slot_to_free;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ctlr = EDMA_CTLR(slot);
|
ctlr = EDMA_CTLR(slot);
|
||||||
|
@ -826,11 +826,11 @@ int edma_free_cont_slots(unsigned slot, int count)
|
||||||
|
|
||||||
for (i = slot; i < slot + count; ++i) {
|
for (i = slot; i < slot + count; ++i) {
|
||||||
ctlr = EDMA_CTLR(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);
|
&dummy_paramset, PARM_SIZE);
|
||||||
clear_bit(slot, edma_info[ctlr]->edma_inuse);
|
clear_bit(slot_to_free, edma_info[ctlr]->edma_inuse);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue