Messages in this thread Patch in this message | | | From | Andy Shevchenko <> | Subject | [PATCHv2 2/2] dma: dw_dmac: clear suspend bit during termination | Date | Tue, 18 Dec 2012 10:33:55 +0200 |
| |
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
The DMA transfer could not be established if previously it was paused and terminated. In that case the channel's suspend bit remains set that prevents to transfer anything until channel is resumed.
The patch adds a code that clears the DWC_CFGL_CH_SUSP bit during termination.
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/dma/dw_dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index 687af2a..8d77643 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@ -1059,7 +1059,7 @@ static int dwc_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, dwc_chan_disable(dw, dwc); - dwc->paused = false; + dwc_chan_resume(dwc); /* active_list entries will end up before queued entries */ list_splice_init(&dwc->queue, &list); -- 1.7.10.4
| |