18d152e7aSLuis R. Rodriguez #include <linux/kernel.h>
28d152e7aSLuis R. Rodriguez #include <linux/init.h>
38d152e7aSLuis R. Rodriguez 
48d152e7aSLuis R. Rodriguez #include <asm/setup.h>
58d152e7aSLuis R. Rodriguez #include <asm/bios_ebda.h>
68d152e7aSLuis R. Rodriguez 
78d152e7aSLuis R. Rodriguez void __init x86_early_init_platform_quirks(void)
88d152e7aSLuis R. Rodriguez {
98d152e7aSLuis R. Rodriguez 	x86_platform.legacy.rtc = 1;
101330e3bcSLuis R. Rodriguez 	x86_platform.legacy.ebda_search = 0;
1180dfd83dSLuis R. Rodriguez 	x86_platform.legacy.devices.pnpbios = 1;
128d152e7aSLuis R. Rodriguez 
138d152e7aSLuis R. Rodriguez 	switch (boot_params.hdr.hardware_subarch) {
141330e3bcSLuis R. Rodriguez 	case X86_SUBARCH_PC:
151330e3bcSLuis R. Rodriguez 		x86_platform.legacy.ebda_search = 1;
161330e3bcSLuis R. Rodriguez 		break;
178d152e7aSLuis R. Rodriguez 	case X86_SUBARCH_XEN:
188d152e7aSLuis R. Rodriguez 	case X86_SUBARCH_LGUEST:
1980dfd83dSLuis R. Rodriguez 		x86_platform.legacy.devices.pnpbios = 0;
2080dfd83dSLuis R. Rodriguez 		x86_platform.legacy.rtc = 0;
2180dfd83dSLuis R. Rodriguez 		break;
228d152e7aSLuis R. Rodriguez 	case X86_SUBARCH_INTEL_MID:
238d152e7aSLuis R. Rodriguez 		x86_platform.legacy.rtc = 0;
248d152e7aSLuis R. Rodriguez 		break;
258d152e7aSLuis R. Rodriguez 	}
268d152e7aSLuis R. Rodriguez 
278d152e7aSLuis R. Rodriguez 	if (x86_platform.set_legacy_features)
288d152e7aSLuis R. Rodriguez 		x86_platform.set_legacy_features();
298d152e7aSLuis R. Rodriguez }
3080dfd83dSLuis R. Rodriguez 
3180dfd83dSLuis R. Rodriguez #if defined(CONFIG_PNPBIOS)
3280dfd83dSLuis R. Rodriguez bool __init arch_pnpbios_disabled(void)
3380dfd83dSLuis R. Rodriguez {
3480dfd83dSLuis R. Rodriguez 	return x86_platform.legacy.devices.pnpbios == 0;
3580dfd83dSLuis R. Rodriguez }
3680dfd83dSLuis R. Rodriguez #endif
37