dmaengine: ste_dma40: fix pm runtime ref counting

The pm runtime reference counting of the driver is broken for the case
when there is more than one transfer queued, leading to the device being
runtime suspend while active.  Fix it.

Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Cc: stable@vger.kernel.org
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
Rabin Vincent 2013-05-27 16:03:40 +02:00 коммит произвёл Vinod Koul
Родитель e4aa937ec7
Коммит 9ecb41bd8c
1 изменённых файлов: 5 добавлений и 3 удалений

Просмотреть файл

@ -1566,10 +1566,12 @@ static void dma_tc_handle(struct d40_chan *d40c)
return; return;
} }
if (d40_queue_start(d40c) == NULL) if (d40_queue_start(d40c) == NULL) {
d40c->busy = false; d40c->busy = false;
pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev); pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
}
d40_desc_remove(d40d); d40_desc_remove(d40d);
d40_desc_done(d40c, d40d); d40_desc_done(d40c, d40d);