Re: [RFC] Sound support for Huawei line of AMD laptops using ACP and ES8336 codec

From: Pierre-Louis Bossart
Date: Fri Jan 06 2023 - 20:15:17 EST




> I have a Huawei Matebook 14 AMD 2021 laptop for which the sound isn't
> supported on Linux. On further investigation in Windows and ACPI tables
> I could determine that this particular SKU has an ES8336 codec connected
> to the CPU ACP module.
> The CPU of my laptop is an AMD Ryzen 5 5500U which seems to be codenamed
> Lucienne and is a derivation of the Renoir family.
> Acording to lspci the ACP is revision 1:
>
> 03:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor [1022:15e2] (rev 01)
> Subsystem: Device [1e83:3e4d]
> Kernel driver in use: snd_rn_pci_acp3x
> Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x,
> snd_pci_acp6x, snd_acp_pci, snd_rpl_pci_acp6x,
> snd_sof_amd_renoir
>
> I have written a machine driver for this platform and managed to make
> the sound and internal microphone work. I am looking to integrate this
> support but there are some issues with the current implementation of ACP
> support.
>
> As far as I can tell there are 4 directions I could take to add support:
>
> 1. A standalone machine driver in sound/soc/amd that uses the platform
> drivers from sound/soc/amd/raven/
>
> 2. An embedded driver in sound/soc/amd/acp/acp-legacy-mach.c
>
> 3. A standalone machine driver in sound/soc/amd that uses the platform
> drivers from sound/soc/amd/renoir
>
> 4. Use the SOF infrastructure

The main issue with this codec is the mind-blowing proliferation of
configurations and quirks.
I can't comment on AMD-specific stuff, but would recommend you take a
look at the GitHub PR we've been reviewing to extract as much
information as possible from ACPI _DSM tables (as done by the Windows
driver). see https://github.com/thesofproject/linux/pull/4112 (credits
to Mauro Chehab for fixing and testing on real hardware and David Yang
for providing the DSM information and comments).