sysfb.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #ifndef _ARCH_X86_KERNEL_SYSFB_H
  2. #define _ARCH_X86_KERNEL_SYSFB_H
  3. /*
  4. * Generic System Framebuffers on x86
  5. * Copyright (c) 2012-2013 David Herrmann <dh.herrmann@gmail.com>
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU General Public License as published by the Free
  9. * Software Foundation; either version 2 of the License, or (at your option)
  10. * any later version.
  11. */
  12. #include <linux/kernel.h>
  13. #include <linux/platform_data/simplefb.h>
  14. #include <linux/screen_info.h>
  15. enum {
  16. M_I17, /* 17-Inch iMac */
  17. M_I20, /* 20-Inch iMac */
  18. M_I20_SR, /* 20-Inch iMac (Santa Rosa) */
  19. M_I24, /* 24-Inch iMac */
  20. M_I24_8_1, /* 24-Inch iMac, 8,1th gen */
  21. M_I24_10_1, /* 24-Inch iMac, 10,1th gen */
  22. M_I27_11_1, /* 27-Inch iMac, 11,1th gen */
  23. M_MINI, /* Mac Mini */
  24. M_MINI_3_1, /* Mac Mini, 3,1th gen */
  25. M_MINI_4_1, /* Mac Mini, 4,1th gen */
  26. M_MB, /* MacBook */
  27. M_MB_2, /* MacBook, 2nd rev. */
  28. M_MB_3, /* MacBook, 3rd rev. */
  29. M_MB_5_1, /* MacBook, 5th rev. */
  30. M_MB_6_1, /* MacBook, 6th rev. */
  31. M_MB_7_1, /* MacBook, 7th rev. */
  32. M_MB_SR, /* MacBook, 2nd gen, (Santa Rosa) */
  33. M_MBA, /* MacBook Air */
  34. M_MBA_3, /* Macbook Air, 3rd rev */
  35. M_MBP, /* MacBook Pro */
  36. M_MBP_2, /* MacBook Pro 2nd gen */
  37. M_MBP_2_2, /* MacBook Pro 2,2nd gen */
  38. M_MBP_SR, /* MacBook Pro (Santa Rosa) */
  39. M_MBP_4, /* MacBook Pro, 4th gen */
  40. M_MBP_5_1, /* MacBook Pro, 5,1th gen */
  41. M_MBP_5_2, /* MacBook Pro, 5,2th gen */
  42. M_MBP_5_3, /* MacBook Pro, 5,3rd gen */
  43. M_MBP_6_1, /* MacBook Pro, 6,1th gen */
  44. M_MBP_6_2, /* MacBook Pro, 6,2th gen */
  45. M_MBP_7_1, /* MacBook Pro, 7,1th gen */
  46. M_MBP_8_2, /* MacBook Pro, 8,2nd gen */
  47. M_UNKNOWN /* placeholder */
  48. };
  49. struct efifb_dmi_info {
  50. char *optname;
  51. unsigned long base;
  52. int stride;
  53. int width;
  54. int height;
  55. int flags;
  56. };
  57. #ifdef CONFIG_EFI
  58. extern struct efifb_dmi_info efifb_dmi_list[];
  59. void sysfb_apply_efi_quirks(void);
  60. #else /* CONFIG_EFI */
  61. static inline void sysfb_apply_efi_quirks(void)
  62. {
  63. }
  64. #endif /* CONFIG_EFI */
  65. #ifdef CONFIG_X86_SYSFB
  66. bool parse_mode(const struct screen_info *si,
  67. struct simplefb_platform_data *mode);
  68. int create_simplefb(const struct screen_info *si,
  69. const struct simplefb_platform_data *mode);
  70. #else /* CONFIG_X86_SYSFB */
  71. static inline bool parse_mode(const struct screen_info *si,
  72. struct simplefb_platform_data *mode)
  73. {
  74. return false;
  75. }
  76. static inline int create_simplefb(const struct screen_info *si,
  77. const struct simplefb_platform_data *mode)
  78. {
  79. return -EINVAL;
  80. }
  81. #endif /* CONFIG_X86_SYSFB */
  82. #endif /* _ARCH_X86_KERNEL_SYSFB_H */