ASoC: Intel: soc-acpi-cht: Add quirk for Nextbook Ares 8A tablet
The Nextbook Ares 8A tablet which has Android as factory OS, has a buggy DSDT with both ESSX8316 and 10EC5651 ACPI devices. This tablet actually uses an rt5651 codec, but the matching code ends up picking the ESSX8316 device, add a quirk to ignote the ESSX8316 device on this tablet. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Message-Id: <20230429104721.7176-1-hdegoede@redhat.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4a1b5bc73e
commit
ec6f82b4c6
|
@ -50,6 +50,31 @@ static struct snd_soc_acpi_mach *cht_quirk(void *arg)
|
||||||
return mach;
|
return mach;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some tablets with Android factory OS have buggy DSDTs with an ESSX8316 device
|
||||||
|
* in the ACPI tables. While they are not using an ESS8316 codec. These DSDTs
|
||||||
|
* also have an ACPI device for the correct codec, ignore the ESSX8316.
|
||||||
|
*/
|
||||||
|
static const struct dmi_system_id cht_ess8316_not_present_table[] = {
|
||||||
|
{
|
||||||
|
/* Nextbook Ares 8A */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
|
||||||
|
DMI_MATCH(DMI_PRODUCT_NAME, "CherryTrail"),
|
||||||
|
DMI_MATCH(DMI_BIOS_VERSION, "M882"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct snd_soc_acpi_mach *cht_ess8316_quirk(void *arg)
|
||||||
|
{
|
||||||
|
if (dmi_check_system(cht_ess8316_not_present_table))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return arg;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct snd_soc_acpi_codecs rt5640_comp_ids = {
|
static const struct snd_soc_acpi_codecs rt5640_comp_ids = {
|
||||||
.num_codecs = 2,
|
.num_codecs = 2,
|
||||||
.codecs = { "10EC5640", "10EC3276" },
|
.codecs = { "10EC5640", "10EC3276" },
|
||||||
|
@ -113,6 +138,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cherrytrail_machines[] = {
|
||||||
.drv_name = "bytcht_es8316",
|
.drv_name = "bytcht_es8316",
|
||||||
.fw_filename = "intel/fw_sst_22a8.bin",
|
.fw_filename = "intel/fw_sst_22a8.bin",
|
||||||
.board = "bytcht_es8316",
|
.board = "bytcht_es8316",
|
||||||
|
.machine_quirk = cht_ess8316_quirk,
|
||||||
.sof_tplg_filename = "sof-cht-es8316.tplg",
|
.sof_tplg_filename = "sof-cht-es8316.tplg",
|
||||||
},
|
},
|
||||||
/* some CHT-T platforms rely on RT5640, use Baytrail machine driver */
|
/* some CHT-T platforms rely on RT5640, use Baytrail machine driver */
|
||||||
|
|
Loading…
Reference in New Issue