platform-quirks.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. #if defined(CONFIG_PNPBIOS)
  32. bool __init arch_pnpbios_disabled(void)
  33. {
  34. return x86_platform.legacy.devices.pnpbios == 0;
  35. }
  36. #endif