On 11/1/18 9:11 AM, Andy Shevchenko wrote:
On Wed, Oct 31, 2018 at 08:07:18PM -0500, Pierre-Louis Bossart wrote:
For some reason the RVP/LeafHill SSDT exposes an INT34C3 ID which is used on other boards to point to the TDF8532 amplifier. Yay BIOS.
Add a DMI-quirk to ignore this ID and check for other valid machine driver descriptors. +static unsigned long apl_machine_id; + +#define APL_RVP 1 + +static int apl_rvp_quirk_cb(const struct dmi_system_id *id) +{ + apl_machine_id = APL_RVP; + return 1; +} + +static const struct dmi_system_id apl_table[] = { + { + .callback = apl_rvp_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."), + DMI_MATCH(DMI_BOARD_NAME, "Apollolake RVP1A"), + }, + }, + {}, Terminator entry doesn't need a comma. It would prevent from (unlikely) mistakes when extending the list. Indeed. I don't know how many tables use this though... will update.
+}; + +static struct snd_soc_acpi_mach *apl_quirk(void *arg) +{ + struct snd_soc_acpi_mach *mach = arg; + + dmi_check_system(apl_table); Can't we just use driver_data of the table above and get rid of at least global variable?
Yes. The code is pretty much copy-pasted from other BYT quirks but can be written in a better way Will send a v2 later today, thanks Andy for the suggestion.
+ + if (apl_machine_id == APL_RVP) + return NULL; + else + return mach; +}