video.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef __ACPI_VIDEO_H
  2. #define __ACPI_VIDEO_H
  3. #include <linux/errno.h> /* for ENODEV */
  4. #include <linux/types.h> /* for bool */
  5. struct acpi_video_brightness_flags {
  6. u8 _BCL_no_ac_battery_levels:1; /* no AC/Battery levels in _BCL */
  7. u8 _BCL_reversed:1; /* _BCL package is in a reversed order */
  8. u8 _BQC_use_index:1; /* _BQC returns an index value */
  9. };
  10. struct acpi_video_device_brightness {
  11. int curr;
  12. int count;
  13. int *levels;
  14. struct acpi_video_brightness_flags flags;
  15. };
  16. struct acpi_device;
  17. #define ACPI_VIDEO_CLASS "video"
  18. #define ACPI_VIDEO_DISPLAY_CRT 1
  19. #define ACPI_VIDEO_DISPLAY_TV 2
  20. #define ACPI_VIDEO_DISPLAY_DVI 3
  21. #define ACPI_VIDEO_DISPLAY_LCD 4
  22. #define ACPI_VIDEO_DISPLAY_LEGACY_MONITOR 0x0100
  23. #define ACPI_VIDEO_DISPLAY_LEGACY_PANEL 0x0110
  24. #define ACPI_VIDEO_DISPLAY_LEGACY_TV 0x0200
  25. enum acpi_backlight_type {
  26. acpi_backlight_undef = -1,
  27. acpi_backlight_none = 0,
  28. acpi_backlight_video,
  29. acpi_backlight_vendor,
  30. acpi_backlight_native,
  31. };
  32. #if IS_ENABLED(CONFIG_ACPI_VIDEO)
  33. extern int acpi_video_register(void);
  34. extern void acpi_video_unregister(void);
  35. extern int acpi_video_get_edid(struct acpi_device *device, int type,
  36. int device_id, void **edid);
  37. extern enum acpi_backlight_type acpi_video_get_backlight_type(void);
  38. extern void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type);
  39. /*
  40. * Note: The value returned by acpi_video_handles_brightness_key_presses()
  41. * may change over time and should not be cached.
  42. */
  43. extern bool acpi_video_handles_brightness_key_presses(void);
  44. extern int acpi_video_get_levels(struct acpi_device *device,
  45. struct acpi_video_device_brightness **dev_br,
  46. int *pmax_level);
  47. #else
  48. static inline int acpi_video_register(void) { return -ENODEV; }
  49. static inline void acpi_video_unregister(void) { return; }
  50. static inline int acpi_video_get_edid(struct acpi_device *device, int type,
  51. int device_id, void **edid)
  52. {
  53. return -ENODEV;
  54. }
  55. static inline enum acpi_backlight_type acpi_video_get_backlight_type(void)
  56. {
  57. return acpi_backlight_vendor;
  58. }
  59. static inline void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type)
  60. {
  61. }
  62. static inline bool acpi_video_handles_brightness_key_presses(void)
  63. {
  64. return false;
  65. }
  66. static inline int acpi_video_get_levels(struct acpi_device *device,
  67. struct acpi_video_device_brightness **dev_br,
  68. int *pmax_level)
  69. {
  70. return -ENODEV;
  71. }
  72. #endif
  73. #endif