dw-dma: do not set the DONE bit of CTL_HI

The DW DMA driver prepares configuration register values in linked
list elements. If linked lists of DMA descriptors are used for DMA
those registers are automatically read in by the hardware for each
transfer. The driver also uses those prepared values to explicitly
write them to respective registers. The DONE bit of the CTL_HI
field in linked list elements is automatically set by the hardware
when the respective transfer has completed. It has to then be
cleared by the software to re-use the entry. In the CTL_HI register
the DONE bit is writable, but setting it doesn't seem to be needed.
Remove the DONE bit manipulation at configuration time.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
Guennadi Liakhovetski 2019-01-10 11:40:42 +01:00 committed by Liam Girdwood
parent 08257d3168
commit 7f374d27a4
1 changed files with 0 additions and 2 deletions

View File

@ -848,7 +848,6 @@ static int dw_dma_set_config(struct dma *dma, int channel,
DW_CTLL_DST_FIX;
#if DW_USE_HW_LLI
lli_desc->ctrl_lo |= DW_CTLL_LLP_S_EN;
lli_desc->ctrl_hi |= DW_CTLH_DONE(1);
chan->cfg_lo |= DW_CFG_RELOAD_DST;
#endif
chan->cfg_hi |= DW_CFGH_DST_PER(config->dest_dev);
@ -861,7 +860,6 @@ static int dw_dma_set_config(struct dma *dma, int channel,
DW_CTLL_DST_INC;
#if DW_USE_HW_LLI
lli_desc->ctrl_lo |= DW_CTLL_LLP_D_EN;
lli_desc->ctrl_hi |= DW_CTLH_DONE(0);
chan->cfg_lo |= DW_CFG_RELOAD_SRC;
#endif
chan->cfg_hi |= DW_CFGH_SRC_PER(config->src_dev);