[PATCH -next] ASoC: amd: yc: Adding Lenovo ThinkBook 14 Gen 4+ ARA and Lenovo ThinkBook 16 Gen 4+ ARA to the Quirks List

Limonciello, Mario Mario.Limonciello at amd.com
Tue Oct 11 19:08:54 CEST 2022


[Public]

Cc:
Mark Pearson
Vijendar
Syed
Renjith

> -----Original Message-----
> From: linkt <xazrael at hotmail.com>
> Sent: Monday, October 10, 2022 21:52
> To: lgirdwood at gmail.com; broonie at kernel.org; perex at perex.cz;
> tiwai at suse.com; Limonciello, Mario <Mario.Limonciello at amd.com>
> Cc: alsa-devel at alsa-project.org; linux-kernel at vger.kernel.org; linkt
> <xazrael at hotmail.com>
> Subject: [PATCH -next] ASoC: amd: yc: Adding Lenovo ThinkBook 14 Gen 4+
> ARA and Lenovo ThinkBook 16 Gen 4+ ARA to the Quirks List
> 
> Lenovo ThinkBook 14 Gen 4+ ARA and ThinkBook 16 Gen 4+ ARA
> need to be added to the list of quirks for the microphone to work properly.
> 
> Signed-off-by: linkt <xazrael at hotmail.com>

This patch alone makes sense to me.

Cc: stable at vger.kernel.org
Reviewed-by: Mario Limonciello <mario.limonciello at amd.com>

I think it should go in as is, but it prompts another idea to me I want to run by
Mark specifically..

Should we just drop this whole file down to a much simpler DMI match prefix like this:

> +	{
> +		.driver_data = &acp6x_card,
> +		.matches = {
> +			DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "21"),
> +		}
> +	},

That would allow it to match all the Lenovo Rembrandt systems presumably and
can stop touching the file.  This only makes sense if every single Lenovo Rembrandt design 
uses a DMIC from ACP.  I don't know if that's a valid assumption and I think we need Mark
to confirm it.

The DMI match "technically" would match some of the Intel systems from this generation
but this driver is only "loaded" on AMD Rembrandt systems, so I don't think it's a problem.

> ---
>  sound/soc/amd/yc/acp6x-mach.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-
> mach.c
> index 2cb50d5cf1a9..09a8aceff22f 100644
> --- a/sound/soc/amd/yc/acp6x-mach.c
> +++ b/sound/soc/amd/yc/acp6x-mach.c
> @@ -45,6 +45,20 @@ static struct snd_soc_card acp6x_card = {
>  };
> 
>  static const struct dmi_system_id yc_acp_quirk_table[] = {
> +	{
> +		.driver_data = &acp6x_card,
> +		.matches = {
> +			DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "21D0"),
> +		}
> +	},
> +	{
> +		.driver_data = &acp6x_card,
> +		.matches = {
> +			DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "21D1"),
> +		}
> +	},
>  	{
>  		.driver_data = &acp6x_card,
>  		.matches = {
> --
> 2.37.3


More information about the Alsa-devel mailing list