~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/acpi/video.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef __ACPI_VIDEO_H
  3 #define __ACPI_VIDEO_H
  4 
  5 #include <linux/errno.h> /* for ENODEV */
  6 #include <linux/types.h> /* for bool */
  7 
  8 struct acpi_video_brightness_flags {
  9         u8 _BCL_no_ac_battery_levels:1; /* no AC/Battery levels in _BCL */
 10         u8 _BCL_reversed:1;             /* _BCL package is in a reversed order */
 11         u8 _BQC_use_index:1;            /* _BQC returns an index value */
 12 };
 13 
 14 struct acpi_video_device_brightness {
 15         int curr;
 16         int count;
 17         int *levels;
 18         struct acpi_video_brightness_flags flags;
 19 };
 20 
 21 struct acpi_device;
 22 
 23 #define ACPI_VIDEO_CLASS        "video"
 24 
 25 #define ACPI_VIDEO_DISPLAY_CRT  1
 26 #define ACPI_VIDEO_DISPLAY_TV   2
 27 #define ACPI_VIDEO_DISPLAY_DVI  3
 28 #define ACPI_VIDEO_DISPLAY_LCD  4
 29 
 30 #define ACPI_VIDEO_DISPLAY_LEGACY_MONITOR 0x0100
 31 #define ACPI_VIDEO_DISPLAY_LEGACY_PANEL   0x0110
 32 #define ACPI_VIDEO_DISPLAY_LEGACY_TV      0x0200
 33 
 34 #define ACPI_VIDEO_NOTIFY_SWITCH                0x80
 35 #define ACPI_VIDEO_NOTIFY_PROBE                 0x81
 36 #define ACPI_VIDEO_NOTIFY_CYCLE                 0x82
 37 #define ACPI_VIDEO_NOTIFY_NEXT_OUTPUT           0x83
 38 #define ACPI_VIDEO_NOTIFY_PREV_OUTPUT           0x84
 39 #define ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS      0x85
 40 #define ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS        0x86
 41 #define ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS        0x87
 42 #define ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS       0x88
 43 #define ACPI_VIDEO_NOTIFY_DISPLAY_OFF           0x89
 44 
 45 enum acpi_backlight_type {
 46         acpi_backlight_undef = -1,
 47         acpi_backlight_none = 0,
 48         acpi_backlight_video,
 49         acpi_backlight_vendor,
 50         acpi_backlight_native,
 51         acpi_backlight_nvidia_wmi_ec,
 52         acpi_backlight_apple_gmux,
 53         acpi_backlight_dell_uart,
 54 };
 55 
 56 #if IS_ENABLED(CONFIG_ACPI_VIDEO)
 57 extern int acpi_video_register(void);
 58 extern void acpi_video_unregister(void);
 59 extern void acpi_video_register_backlight(void);
 60 extern int acpi_video_get_edid(struct acpi_device *device, int type,
 61                                int device_id, void **edid);
 62 /*
 63  * Note: The value returned by acpi_video_handles_brightness_key_presses()
 64  * may change over time and should not be cached.
 65  */
 66 extern bool acpi_video_handles_brightness_key_presses(void);
 67 extern int acpi_video_get_levels(struct acpi_device *device,
 68                                  struct acpi_video_device_brightness **dev_br,
 69                                  int *pmax_level);
 70 
 71 extern enum acpi_backlight_type __acpi_video_get_backlight_type(bool native,
 72                                                                 bool *auto_detect);
 73 
 74 static inline enum acpi_backlight_type acpi_video_get_backlight_type(void)
 75 {
 76         return __acpi_video_get_backlight_type(false, NULL);
 77 }
 78 
 79 /*
 80  * This function MUST only be called by GPU drivers to check if the driver
 81  * should register a backlight class device. This function not only checks
 82  * if a GPU native backlight device should be registered it *also* tells
 83  * the ACPI video-detect code that native GPU backlight control is available.
 84  * Therefor calling this from any place other then the GPU driver is wrong!
 85  * To check if GPU native backlight control is used in other places instead use:
 86  *   if (acpi_video_get_backlight_type() == acpi_backlight_native) { ... }
 87  */
 88 static inline bool acpi_video_backlight_use_native(void)
 89 {
 90         return __acpi_video_get_backlight_type(true, NULL) == acpi_backlight_native;
 91 }
 92 #else
 93 static inline int acpi_video_register(void) { return -ENODEV; }
 94 static inline void acpi_video_unregister(void) { return; }
 95 static inline void acpi_video_register_backlight(void) { return; }
 96 static inline int acpi_video_get_edid(struct acpi_device *device, int type,
 97                                       int device_id, void **edid)
 98 {
 99         return -ENODEV;
100 }
101 static inline enum acpi_backlight_type acpi_video_get_backlight_type(void)
102 {
103         return acpi_backlight_vendor;
104 }
105 static inline bool acpi_video_backlight_use_native(void)
106 {
107         return true;
108 }
109 static inline bool acpi_video_handles_brightness_key_presses(void)
110 {
111         return false;
112 }
113 static inline int acpi_video_get_levels(struct acpi_device *device,
114                         struct acpi_video_device_brightness **dev_br,
115                         int *pmax_level)
116 {
117         return -ENODEV;
118 }
119 #endif
120 
121 #endif
122 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php