Merge remote-tracking branch 'asoc/for-4.19' into asoc-4.20
This commit is contained in:
commit
7ece50c9f7
|
@ -1040,16 +1040,22 @@ static snd_pcm_uframes_t acp_dma_pointer(struct snd_pcm_substream *substream)
|
|||
|
||||
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
|
||||
period_bytes = frames_to_bytes(runtime, runtime->period_size);
|
||||
dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr);
|
||||
if (dscr == rtd->dma_dscr_idx_1)
|
||||
pos = period_bytes;
|
||||
else
|
||||
pos = 0;
|
||||
bytescount = acp_get_byte_count(rtd);
|
||||
if (bytescount > rtd->bytescount)
|
||||
if (bytescount >= rtd->bytescount)
|
||||
bytescount -= rtd->bytescount;
|
||||
delay = do_div(bytescount, period_bytes);
|
||||
runtime->delay = bytes_to_frames(runtime, delay);
|
||||
if (bytescount < period_bytes) {
|
||||
pos = 0;
|
||||
} else {
|
||||
dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr);
|
||||
if (dscr == rtd->dma_dscr_idx_1)
|
||||
pos = period_bytes;
|
||||
else
|
||||
pos = 0;
|
||||
}
|
||||
if (bytescount > 0) {
|
||||
delay = do_div(bytescount, period_bytes);
|
||||
runtime->delay = bytes_to_frames(runtime, delay);
|
||||
}
|
||||
} else {
|
||||
buffersize = frames_to_bytes(runtime, runtime->buffer_size);
|
||||
bytescount = acp_get_byte_count(rtd);
|
||||
|
|
Loading…
Reference in New Issue