On Thu, 19 Aug 2021 16:45:19 +0200, Hans de Goede wrote: > > Hi, > > On 8/19/21 4:42 PM, Hans de Goede wrote: > > Hi All, > > > > After rebasing a set of bytcr_rt5640 patches, on top of asoc/for-next > > I noticed that playing back audio would only generate random-noise / buzzing > > (I did not try recording any audio). > > > > After poking at this for a while I've found the culprit: > > > > 2e6b836312a4 ("ASoC: intel: atom: Fix reference to PCM buffer address") > > > > If I revert that single commit then audio on Intel Bay Trail and > > Cherry Trail devices works fine again with 5.14. > > > > This is with a Fedora 34 userspace using pipewire as audiodaemon > > > > I'm not sure what is going on here, but since the old code > > changed by the broken commit has worked fine for ages and > > given where we are in the devel-cycle I think it might be best > > to just revert 2e6b836312a4 again. > > p.s. to be clear I noticed this after rebasing on top of asoc/for-next > but the troublesome commit is actually in Linus tree now and thus > will hit end users once 5.14 is released. > > (the troublesome commit landed in 5.14-rc6 and my previous tests > were with 5.14-rc5) Ah, the commit might be problematic on 5.14 where dma_addr isn't set yet for the CONTINUOUS buffer type (which was fixed in sound.git for-next branch). Could you try the patch below? thanks, Takashi --- --- a/sound/soc/intel/atom/sst-mfld-platform-pcm.c +++ b/sound/soc/intel/atom/sst-mfld-platform-pcm.c @@ -127,7 +127,7 @@ static void sst_fill_alloc_params(struct snd_pcm_substream *substream, snd_pcm_uframes_t period_size; ssize_t periodbytes; ssize_t buffer_bytes = snd_pcm_lib_buffer_bytes(substream); - u32 buffer_addr = substream->runtime->dma_addr; + u32 buffer_addr = virt_to_phys(substream->runtime->dma_area); channels = substream->runtime->channels; period_size = substream->runtime->period_size;