platform-quirks.c 1.1 KB

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