mirror of https://github.com/thesofproject/sof.git
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:
parent
08257d3168
commit
7f374d27a4
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue