]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: amd: acp: update DMI quirk and add ACP DMIC for Lenovo platforms
authorSyed Saba Kareem <Syed.SabaKareem@amd.com>
Wed, 8 Apr 2026 13:30:06 +0000 (19:00 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 8 Apr 2026 16:04:47 +0000 (17:04 +0100)
Replace DMI_EXACT_MATCH with DMI_MATCH for Lenovo SKU entries (21YW,
21YX) so the quirk applies to all variants of these models, not just
exact SKU matches.

Add ASOC_SDW_ACP_DMIC flag alongside ASOC_SDW_CODEC_SPKR in driver_data
for these Lenovo platform entries, as these platforms use ACP PDM DMIC
instead of SoundWire DMIC for digital microphone support.

Fixes: 3acf517e1ae0 ("ASoC: amd: amd_sdw: add machine driver quirk for Lenovo models")
Tested-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com>
Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20260408133029.1368317-1-syed.sabakareem@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-sdw-legacy-mach.c

index 92749dc17df86ed26554c292d7aab034004ebfe8..cd7b1acc7216d00b7b24936434acba70d870b2df 100644 (file)
@@ -99,17 +99,17 @@ static const struct dmi_system_id soc_sdw_quirk_table[] = {
                .callback = soc_sdw_quirk_cb,
                .matches = {
                        DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-                       DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "21YW"),
+                       DMI_MATCH(DMI_PRODUCT_SKU, "21YW"),
                },
-               .driver_data = (void *)(ASOC_SDW_CODEC_SPKR),
+               .driver_data = (void *)((ASOC_SDW_CODEC_SPKR) | (ASOC_SDW_ACP_DMIC)),
        },
        {
                .callback = soc_sdw_quirk_cb,
                .matches = {
                        DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-                       DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "21YX"),
+                       DMI_MATCH(DMI_PRODUCT_SKU, "21YX"),
                },
-               .driver_data = (void *)(ASOC_SDW_CODEC_SPKR),
+               .driver_data = (void *)((ASOC_SDW_CODEC_SPKR) | (ASOC_SDW_ACP_DMIC)),
        },
        {
                .callback = soc_sdw_quirk_cb,