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;
10edce2121SIngo Molnar 	x86_platform.legacy.reserve_bios_regions = 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:
15edce2121SIngo Molnar 		x86_platform.legacy.reserve_bios_regions = 1;
161330e3bcSLuis R. Rodriguez 		break;
178d152e7aSLuis R. Rodriguez 	case X86_SUBARCH_XEN:
188d152e7aSLuis R. Rodriguez 	case X86_SUBARCH_LGUEST:
198d152e7aSLuis R. Rodriguez 	case X86_SUBARCH_INTEL_MID:
20a50b22a7SLuis R. Rodriguez 	case X86_SUBARCH_CE4100:
21f6935b7bSLuis R. Rodriguez 		x86_platform.legacy.devices.pnpbios = 0;
228d152e7aSLuis R. Rodriguez 		x86_platform.legacy.rtc = 0;
238d152e7aSLuis R. Rodriguez 		break;
248d152e7aSLuis R. Rodriguez 	}
258d152e7aSLuis R. Rodriguez 
268d152e7aSLuis R. Rodriguez 	if (x86_platform.set_legacy_features)
278d152e7aSLuis R. Rodriguez 		x86_platform.set_legacy_features();
288d152e7aSLuis R. Rodriguez }
2980dfd83dSLuis R. Rodriguez 
3080dfd83dSLuis R. Rodriguez #if defined(CONFIG_PNPBIOS)
3180dfd83dSLuis R. Rodriguez bool __init arch_pnpbios_disabled(void)
3280dfd83dSLuis R. Rodriguez {
3380dfd83dSLuis R. Rodriguez 	return x86_platform.legacy.devices.pnpbios == 0;
3480dfd83dSLuis R. Rodriguez }
3580dfd83dSLuis R. Rodriguez #endif
36