Linux users received some good news today: Phoronix reported that Linux 5.3 will finally address issues with audio input on systems with AMD processors. Those fixes will be added to currently available versions of the Linux kernel, too, so users won't have to install the point upgrade.
Phoronix said that Linux users who rely on AMD processors have been reporting "crackling" audio input since at least 2017. The problems don't usually appear to affect the audio output, so many people were probably unaware of the issue, but there were sporadic reports of "occasional playback hiccups."
These issues were said to affect systems featuring motherboards built around AMD's X470 and X370 chipsets that used Realtek audio codecs. Linux users couldn't find a workaround to address the issue--which isn't common for that particular community--so they simply had to accept the crackle.
Or at least they did until SUSE engineer Takashi Iwai shared a series of not-quite-fixes discovered after "lengthy debugging sessions." Those workarounds are:
Set up the proper driver caps for this controller, similar as the other AMD controller.Correct the DMA position reporting with the fixed FIFO size, which is similar like as workaround used for VIA chip set.Even after the position correction, PulseAudio still shows mysterious stalls of playback streams when a capture is triggered in timer-scheduled mode. Since we have no clear way to eliminate the stall, pass the BATCH PCM flag for PA to suppress the tsched mode as a temporary workaround.
Iwai said the patch set to debut with Linux 5.3 introduces these workarounds by setting the driver caps preset to AXZ_DCAPS_PRESET_AMD_SB, enabling FIFO-corrected position reporting and enforcing the SNDRV_PCM_INFO_BATCH flag. This should temporarily resolve audio input problems.
But the patch notes were clear about these being workarounds rather than legitimate fixes. "Note that the current implementation is merely a workaround," Iwai said. "Hopefully we'll find a better alternative in future, especially about removing the BATCH flag hack again."