Messages in this thread Patch in this message | | | From | Andy Shevchenko <> | Subject | [PATCH v3 5/9] x86/quirks: Convert DMI matching to use a table | Date | Wed, 22 Jan 2020 13:23:02 +0200 |
| |
In order to extend the DMI based quirks, convert them to a table.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- arch/x86/kernel/quirks.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c index 6c122f35508a..3867f81baae7 100644 --- a/arch/x86/kernel/quirks.c +++ b/arch/x86/kernel/quirks.c @@ -658,8 +658,37 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2083, quirk_intel_purley_xeon_ras bool x86_apple_machine; EXPORT_SYMBOL(x86_apple_machine); +static const struct dmi_system_id x86_machine_table[] __initconst = { + { + .ident = "x86 Apple Macintosh", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."), + }, + .driver_data = &x86_apple_machine, + }, + { + .ident = "x86 Apple Macintosh", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."), + }, + .driver_data = &x86_apple_machine, + }, + {} +}; + +static void __init early_platform_detect_quirk(void) +{ + const struct dmi_system_id *id; + + id = dmi_first_match(x86_machine_table); + if (!id) + return; + + printk(KERN_DEBUG "Detected %s platform\n", id->ident); + *((bool *)id->driver_data) = true; +} + void __init early_platform_quirks(void) { - x86_apple_machine = dmi_match(DMI_SYS_VENDOR, "Apple Inc.") || - dmi_match(DMI_SYS_VENDOR, "Apple Computer, Inc."); + early_platform_detect_quirk(); } -- 2.24.1
| |