platform-quirks.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <linux/kernel.h>
  3. #include <linux/init.h>
  4. #include <asm/setup.h>
  5. #include <asm/bios_ebda.h>
  6. void __init x86_early_init_platform_quirks(void)
  7. {
  8. x86_platform.legacy.i8042 = X86_LEGACY_I8042_EXPECTED_PRESENT;
  9. x86_platform.legacy.rtc = 1;
  10. x86_platform.legacy.warm_reset = 1;
  11. x86_platform.legacy.reserve_bios_regions = 0;
  12. x86_platform.legacy.devices.pnpbios = 1;
  13. switch (boot_params.hdr.hardware_subarch) {
  14. case X86_SUBARCH_PC:
  15. x86_platform.legacy.reserve_bios_regions = 1;
  16. break;
  17. case X86_SUBARCH_XEN:
  18. x86_platform.legacy.devices.pnpbios = 0;
  19. x86_platform.legacy.rtc = 0;
  20. break;
  21. case X86_SUBARCH_INTEL_MID:
  22. case X86_SUBARCH_CE4100:
  23. x86_platform.legacy.devices.pnpbios = 0;
  24. x86_platform.legacy.rtc = 0;
  25. x86_platform.legacy.i8042 = X86_LEGACY_I8042_PLATFORM_ABSENT;
  26. break;
  27. }
  28. if (x86_platform.set_legacy_features)
  29. x86_platform.set_legacy_features();
  30. }
  31. bool __init x86_pnpbios_disabled(void)
  32. {
  33. return x86_platform.legacy.devices.pnpbios == 0;
  34. }
  35. #if defined(CONFIG_PNPBIOS)
  36. bool __init arch_pnpbios_disabled(void)
  37. {
  38. return x86_pnpbios_disabled();
  39. }
  40. #endif