diff options context: 1 2 3 4 5 6 7 8 9 10 15 20 25 30 35 40 space: include ignore mode: unified ssdiff stat only

author 2019-08-06 17:31:48 +0200 committer 2019-08-07 13:47:46 +0200 commit c02f77d32d2c45cfb1b2bb99eabd8a78f5ecc7db (patch) tree 583760d003a852b0607fb20f0ce6d6967ca8a3f8 parent 3d92aa45fbfd7319e3a19f4ec59fd32b3862b723 (diff) download linux-c02f77d32d2c45cfb1b2bb99eabd8a78f5ecc7db.tar.gz



ALSA: hda - Workaround for crackled sound on AMD controller (1022:1457)

A long-time problem on the recent AMD chip (X370, X470, B450, etc with PCI ID 1022:1457) with Realtek codecs is the crackled or distorted sound for capture streams, as well as occasional playback hiccups. After lengthy debugging sessions, the workarounds we've found are like the following: - 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. This patch implements the workarounds. For the driver caps, it defines a new preset, AXZ_DCAPS_PRESET_AMD_SB. It enables the FIFO- corrected position reporting (corresponding to the new position_fix=6) and enforces the SNDRV_PCM_INFO_BATCH flag. Note that the current implementation is merely a workaround. Hopefully we'll find a better alternative in future, especially about removing the BATCH flag hack again. BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=195303 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>

3 files changed, 70 insertions, 2 deletions