ASoC: xilinx: Fix reference to PCM buffer address
PCM buffers might be allocated dynamically when the buffer preallocation failed or a larger buffer is requested, and it's not guaranteed that substream->dma_buffer points to the actually used buffer. The driver needs to refer to substream->runtime->dma_addr instead for the buffer address. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20210728112353.6675-4-tiwai@suse.de Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
2e6b836312
commit
42bc62c9f1
|
@ -452,8 +452,8 @@ static int xlnx_formatter_pcm_hw_params(struct snd_soc_component *component,
|
|||
|
||||
stream_data->buffer_size = size;
|
||||
|
||||
low = lower_32_bits(substream->dma_buffer.addr);
|
||||
high = upper_32_bits(substream->dma_buffer.addr);
|
||||
low = lower_32_bits(runtime->dma_addr);
|
||||
high = upper_32_bits(runtime->dma_addr);
|
||||
writel(low, stream_data->mmio + XLNX_AUD_BUFF_ADDR_LSB);
|
||||
writel(high, stream_data->mmio + XLNX_AUD_BUFF_ADDR_MSB);
|
||||
|
||||
|
|
Loading…
Reference in New Issue