Skip to content

Commit

Permalink
dma: dw_dmac: clear suspend bit during termination
Browse files Browse the repository at this point in the history
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 the dwc_chan_resume() call instead of a plain flag assignment.
That clears the DWC_CFGL_CH_SUSP bit as well 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>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  • Loading branch information
Heikki Krogerus authored and Vinod Koul committed Jan 12, 2013
1 parent 23d5f4e commit a5dbff1
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/dma/dw_dmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit a5dbff1

Please sign in to comment.