mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
7f2430cda8
At the moment, playing audio with PulseAudio with the qdsp6 driver
results in distorted sound. It seems like its timer-based scheduling
does not work properly with qdsp6 since setting tsched=0 in
the PulseAudio configuration avoids the issue.
Apparently this happens when the pointer() callback is not accurate
enough. There is a SNDRV_PCM_INFO_BATCH flag that can be used to stop
PulseAudio from using timer-based scheduling by default.
According to https://www.alsa-project.org/pipermail/alsa-devel/2014-March/073816.html:
The flag is being used in the sense explained in the previous audio
meeting -- the data transfer granularity isn't fine enough but aligned
to the period size (or less).
q6asm-dai reports the position as multiple of
prtd->pcm_count = snd_pcm_lib_period_bytes(substream)
so it indeed just a multiple of the period size.
Therefore adding the flag here seems appropriate and makes audio
work out of the box.
Fixes:
|
||
---|---|---|
.. | ||
Makefile | ||
q6adm.c | ||
q6adm.h | ||
q6afe-dai.c | ||
q6afe.c | ||
q6afe.h | ||
q6asm-dai.c | ||
q6asm.c | ||
q6asm.h | ||
q6core.c | ||
q6core.h | ||
q6dsp-common.c | ||
q6dsp-common.h | ||
q6dsp-errno.h | ||
q6routing.c | ||
q6routing.h |