mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
ASoC: Intel: Add quirk to block match table for Lenovo Yoga Slim 7
A variant of the Lenovo Yoga Slim 7 exists on Lunar Lake that doesn't have a physical jack socket. Cirrus codecs still use match tables on LNL but the match table makes no distinction between a system with or without a jack. This leads to the system failing probe as the jack in the topology file is not matched by a DAI link as the machine driver is constructed. Add a new quirk to block using match tables for specific devices, and rely on function topologies which can handle this difference seamlessly. This is slightly preferred over moving everything to function topologies due to the lower chance of causing regressions on other systems. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20260928105610.242687-1-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ca51771c8e
commit
c26d18964a
|
|
@ -745,6 +745,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
|
|||
.links = lnl_cs42l43_l0,
|
||||
.drv_name = "sof_sdw",
|
||||
.sof_tplg_filename = "sof-lnl-cs42l43-l0.tplg",
|
||||
.machine_check = snd_soc_acpi_intel_force_function_topology,
|
||||
.get_function_tplg_files = sof_sdw_get_tplg_files,
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -53,6 +53,22 @@ bool snd_soc_acpi_intel_no_function_topology(void *arg)
|
|||
}
|
||||
EXPORT_SYMBOL_NS(snd_soc_acpi_intel_no_function_topology, "SND_SOC_ACPI_INTEL_SDCA_QUIRKS");
|
||||
|
||||
static const struct dmi_system_id force_function_topology_quirk_table[] = {
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "83R0"),
|
||||
},
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
bool snd_soc_acpi_intel_force_function_topology(void *arg)
|
||||
{
|
||||
return !dmi_check_system(force_function_topology_quirk_table);
|
||||
}
|
||||
EXPORT_SYMBOL_NS(snd_soc_acpi_intel_force_function_topology, "SND_SOC_ACPI_INTEL_SDCA_QUIRKS");
|
||||
|
||||
bool snd_soc_acpi_intel_rt712_vb_no_function_topology(void *arg)
|
||||
{
|
||||
return snd_soc_acpi_intel_sdca_is_device_rt712_vb(arg) &&
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
bool snd_soc_acpi_intel_sdca_is_device_rt712_vb(void *arg);
|
||||
bool snd_soc_acpi_intel_no_function_topology(void *arg);
|
||||
bool snd_soc_acpi_intel_force_function_topology(void *arg);
|
||||
bool snd_soc_acpi_intel_rt712_vb_no_function_topology(void *arg);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user