This series adds support for a line of HUAWEI laptops with AMD CPUs that connect using the ACP3x module to a ES8336 codec.
The codec driver must be extended to support the S32 LE format and the MCLK div by 2 option. MCLK div by 2 is needed for one specific SKU which uses a 48Mhz MCLK which seems to be too high of a frequency for the codec and must be divided by 2.
The acp legacy driver must also be extended by using callbacks so that the more complicated handling for this specific codec can be moved outside the more generic ACP code.
The last patch tries to avoid anoying pop sounds when the speaker/headphones are enabled/disabled by delaying the handling of the GPIOs and using a mutex to avoid race conditions between the speaker power event callback and the trigger callback.
Marian Postevca (4): ASoC: es8316: Enable support for S32 LE format and MCLK div by 2 ASoC: amd: acp: Add support for splitting the codec specific code from the ACP driver ASoC: amd: acp: Add machine driver that enables sound for systems with a ES8336 codec ASoC: amd: acp: Improve support for speaker power events
sound/soc/amd/acp-config.c | 70 ++ sound/soc/amd/acp/Makefile | 2 +- sound/soc/amd/acp/acp-legacy-mach.c | 105 ++- sound/soc/amd/acp/acp-mach-common.c | 8 + sound/soc/amd/acp/acp-mach.h | 67 ++ sound/soc/amd/acp/acp-renoir.c | 4 + sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c | 615 ++++++++++++++++++ sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.h | 12 + sound/soc/codecs/es8316.c | 21 +- sound/soc/codecs/es8316.h | 3 + 10 files changed, 886 insertions(+), 21 deletions(-) create mode 100644 sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c create mode 100644 sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.h