mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-06 04:45:27 +07:00
c02f77d32d
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> |
||
---|---|---|
.. | ||
ca0132_regs.h | ||
hda_auto_parser.c | ||
hda_auto_parser.h | ||
hda_beep.c | ||
hda_beep.h | ||
hda_bind.c | ||
hda_codec.c | ||
hda_controller_trace.h | ||
hda_controller.c | ||
hda_controller.h | ||
hda_eld.c | ||
hda_generic.c | ||
hda_generic.h | ||
hda_hwdep.c | ||
hda_intel_trace.h | ||
hda_intel.c | ||
hda_intel.h | ||
hda_jack.c | ||
hda_jack.h | ||
hda_local.h | ||
hda_proc.c | ||
hda_sysfs.c | ||
hda_tegra.c | ||
hp_x360_helper.c | ||
Kconfig | ||
Makefile | ||
patch_analog.c | ||
patch_ca0110.c | ||
patch_ca0132.c | ||
patch_cirrus.c | ||
patch_cmedia.c | ||
patch_conexant.c | ||
patch_hdmi.c | ||
patch_realtek.c | ||
patch_si3054.c | ||
patch_sigmatel.c | ||
patch_via.c | ||
thinkpad_helper.c |