blob: 91271122f0dfb947e1b1b68cddeb505053fd9425 [file] [log] [blame]
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -07001#include <linux/kernel.h>
2#include <linux/init.h>
3
4#include <asm/setup.h>
5#include <asm/bios_ebda.h>
6
7void __init x86_early_init_platform_quirks(void)
8{
Dmitry Torokhov93ffa9a2016-12-09 12:57:38 -08009 x86_platform.legacy.i8042 = X86_LEGACY_I8042_EXPECTED_PRESENT;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070010 x86_platform.legacy.rtc = 1;
Ingo Molnaredce2122016-07-21 09:53:52 +020011 x86_platform.legacy.reserve_bios_regions = 0;
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070012 x86_platform.legacy.devices.pnpbios = 1;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070013
14 switch (boot_params.hdr.hardware_subarch) {
Luis R. Rodriguez1330e3b2016-04-13 17:04:36 -070015 case X86_SUBARCH_PC:
Ingo Molnaredce2122016-07-21 09:53:52 +020016 x86_platform.legacy.reserve_bios_regions = 1;
Luis R. Rodriguez1330e3b2016-04-13 17:04:36 -070017 break;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070018 case X86_SUBARCH_XEN:
19 case X86_SUBARCH_LGUEST:
Dmitry Torokhov93ffa9a2016-12-09 12:57:38 -080020 x86_platform.legacy.devices.pnpbios = 0;
21 x86_platform.legacy.rtc = 0;
22 break;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070023 case X86_SUBARCH_INTEL_MID:
Luis R. Rodrigueza50b22a2016-04-13 17:04:46 -070024 case X86_SUBARCH_CE4100:
Luis R. Rodriguezf6935b72016-04-13 17:04:45 -070025 x86_platform.legacy.devices.pnpbios = 0;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070026 x86_platform.legacy.rtc = 0;
Dmitry Torokhov93ffa9a2016-12-09 12:57:38 -080027 x86_platform.legacy.i8042 = X86_LEGACY_I8042_PLATFORM_ABSENT;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070028 break;
29 }
30
31 if (x86_platform.set_legacy_features)
32 x86_platform.set_legacy_features();
33}
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070034
35#if defined(CONFIG_PNPBIOS)
36bool __init arch_pnpbios_disabled(void)
37{
38 return x86_platform.legacy.devices.pnpbios == 0;
39}
40#endif