ASoC: Intel: sof_sdw: add quirk for HP Spectre x360 convertible
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Mon, 8 Feb 2021 23:33:28 +0000 (17:33 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 Mar 2021 13:17:29 +0000 (14:17 +0100)
[ Upstream commit d92e279dee56b4b65c1af21f972413f172a9734a ]

This set of devices has SoundWire support along with DMICs.
The DMI information was provided by users for 3 separate skus.

BugLink: https://github.com/thesofproject/linux/issues/2700
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210208233336.59449-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/intel/boards/sof_sdw.c

index 9e2e8f5..1d76773 100644 (file)
@@ -159,6 +159,22 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
                                        SOF_SDW_PCH_DMIC |
                                        SOF_SDW_FOUR_SPK),
        },
                                        SOF_SDW_PCH_DMIC |
                                        SOF_SDW_FOUR_SPK),
        },
+       {
+               /*
+                * this entry covers multiple HP SKUs. The family name
+                * does not seem robust enough, so we use a partial
+                * match that ignores the product name suffix
+                * (e.g. 15-eb1xxx, 14t-ea000 or 13-aw2xxx)
+                */
+               .callback = sof_sdw_quirk_cb,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x360 Convertible"),
+               },
+               .driver_data = (void *)(SOF_SDW_TGL_HDMI |
+                                       SOF_SDW_PCH_DMIC |
+                                       SOF_RT711_JD_SRC_JD2),
+       },
        /* TigerLake-SDCA devices */
        {
                .callback = sof_sdw_quirk_cb,
        /* TigerLake-SDCA devices */
        {
                .callback = sof_sdw_quirk_cb,