blob: ab643825a7aae3904a794273b5aeeee7db0b2562 [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{
9 x86_platform.legacy.rtc = 1;
Luis R. Rodriguez1330e3b2016-04-13 17:04:36 -070010 x86_platform.legacy.ebda_search = 0;
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070011 x86_platform.legacy.devices.pnpbios = 1;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070012
13 switch (boot_params.hdr.hardware_subarch) {
Luis R. Rodriguez1330e3b2016-04-13 17:04:36 -070014 case X86_SUBARCH_PC:
15 x86_platform.legacy.ebda_search = 1;
16 break;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070017 case X86_SUBARCH_XEN:
18 case X86_SUBARCH_LGUEST:
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070019 x86_platform.legacy.devices.pnpbios = 0;
20 x86_platform.legacy.rtc = 0;
21 break;
Luis R. Rodriguez8d152e72016-04-13 17:04:34 -070022 case X86_SUBARCH_INTEL_MID:
23 x86_platform.legacy.rtc = 0;
24 break;
25 }
26
27 if (x86_platform.set_legacy_features)
28 x86_platform.set_legacy_features();
29}
Luis R. Rodriguez80dfd832016-04-13 17:04:41 -070030
31#if defined(CONFIG_PNPBIOS)
32bool __init arch_pnpbios_disabled(void)
33{
34 return x86_platform.legacy.devices.pnpbios == 0;
35}
36#endif