Re: [PATCH 1/3] ASoC: amd: acp: add DMI override for ACP70 flag

From: Mukunda,Vijendar

Date: Mon Mar 09 2026 - 01:33:40 EST


On 08/03/26 20:46, hasunpark@xxxxxxxxx wrote:
> [You don't often get email from hasunpark@xxxxxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> From: Hasun Park <hasunpark@xxxxxxxxx>
>
> Some ASUS ProArt PX13 systems expose ACP ACPI config flags that can
> select a non-working fallback path.
>
> Add a DMI override in snd_amd_acp_find_config() for ACP70+ boards and
> return 0 so ACP ACPI flag-based selection is skipped on this platform.
>
> This keeps machine driver selection on the intended SoundWire path.

This patch should be dropped.
To avoid overgrowing DMI quirks table, we have introduced "acp-audio-config-flag"
which should be updated based on platform hw configuration and required driver
solution to be loaded.

ASUS has to update the BIOS by changing "acp-audio-config-flag" to zero.

>
> Signed-off-by: Hasun Park <hasunpark@xxxxxxxxx>
> ---
> sound/soc/amd/acp-config.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/amd/acp-config.c b/sound/soc/amd/acp-config.c
> index 365209ea53f3..1604ed679224 100644
> --- a/sound/soc/amd/acp-config.c
> +++ b/sound/soc/amd/acp-config.c
> @@ -23,6 +23,16 @@
>
> static int acp_quirk_data;
>
> +static const struct dmi_system_id acp70_acpi_flag_override_table[] = {
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "HN7306EA"),
> + },
> + },
> + {}
> +};
> +
> static const struct config_entry config_table[] = {
> {
> .flags = FLAG_AMD_SOF,
> @@ -186,8 +196,11 @@ int snd_amd_acp_find_config(struct pci_dev *pci)
> */
> if (!pci->revision)
> return 0;
> - else if (pci->revision >= ACP_7_0_REV)
> + else if (pci->revision >= ACP_7_0_REV) {
> + if (dmi_check_system(acp70_acpi_flag_override_table))
> + return 0;
> return snd_amd_acp_acpi_find_config(pci);
> + }
>
> for (i = 0; i < ARRAY_SIZE(config_table); i++, table++) {
> if (table->device != device)
> --
> 2.53.0
>