forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.8 KiB
95 lines
2.8 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef __ACPI_VIDEO_H |
|
#define __ACPI_VIDEO_H |
|
|
|
#include <linux/errno.h> /* for ENODEV */ |
|
#include <linux/types.h> /* for bool */ |
|
|
|
struct acpi_video_brightness_flags { |
|
u8 _BCL_no_ac_battery_levels:1; /* no AC/Battery levels in _BCL */ |
|
u8 _BCL_reversed:1; /* _BCL package is in a reversed order */ |
|
u8 _BQC_use_index:1; /* _BQC returns an index value */ |
|
}; |
|
|
|
struct acpi_video_device_brightness { |
|
int curr; |
|
int count; |
|
int *levels; |
|
struct acpi_video_brightness_flags flags; |
|
}; |
|
|
|
struct acpi_device; |
|
|
|
#define ACPI_VIDEO_CLASS "video" |
|
|
|
#define ACPI_VIDEO_DISPLAY_CRT 1 |
|
#define ACPI_VIDEO_DISPLAY_TV 2 |
|
#define ACPI_VIDEO_DISPLAY_DVI 3 |
|
#define ACPI_VIDEO_DISPLAY_LCD 4 |
|
|
|
#define ACPI_VIDEO_DISPLAY_LEGACY_MONITOR 0x0100 |
|
#define ACPI_VIDEO_DISPLAY_LEGACY_PANEL 0x0110 |
|
#define ACPI_VIDEO_DISPLAY_LEGACY_TV 0x0200 |
|
|
|
#define ACPI_VIDEO_NOTIFY_SWITCH 0x80 |
|
#define ACPI_VIDEO_NOTIFY_PROBE 0x81 |
|
#define ACPI_VIDEO_NOTIFY_CYCLE 0x82 |
|
#define ACPI_VIDEO_NOTIFY_NEXT_OUTPUT 0x83 |
|
#define ACPI_VIDEO_NOTIFY_PREV_OUTPUT 0x84 |
|
#define ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS 0x85 |
|
#define ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS 0x86 |
|
#define ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS 0x87 |
|
#define ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS 0x88 |
|
#define ACPI_VIDEO_NOTIFY_DISPLAY_OFF 0x89 |
|
|
|
enum acpi_backlight_type { |
|
acpi_backlight_undef = -1, |
|
acpi_backlight_none = 0, |
|
acpi_backlight_video, |
|
acpi_backlight_vendor, |
|
acpi_backlight_native, |
|
}; |
|
|
|
#if IS_ENABLED(CONFIG_ACPI_VIDEO) |
|
extern int acpi_video_register(void); |
|
extern void acpi_video_unregister(void); |
|
extern int acpi_video_get_edid(struct acpi_device *device, int type, |
|
int device_id, void **edid); |
|
extern enum acpi_backlight_type acpi_video_get_backlight_type(void); |
|
extern void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type); |
|
/* |
|
* Note: The value returned by acpi_video_handles_brightness_key_presses() |
|
* may change over time and should not be cached. |
|
*/ |
|
extern bool acpi_video_handles_brightness_key_presses(void); |
|
extern int acpi_video_get_levels(struct acpi_device *device, |
|
struct acpi_video_device_brightness **dev_br, |
|
int *pmax_level); |
|
#else |
|
static inline int acpi_video_register(void) { return -ENODEV; } |
|
static inline void acpi_video_unregister(void) { return; } |
|
static inline int acpi_video_get_edid(struct acpi_device *device, int type, |
|
int device_id, void **edid) |
|
{ |
|
return -ENODEV; |
|
} |
|
static inline enum acpi_backlight_type acpi_video_get_backlight_type(void) |
|
{ |
|
return acpi_backlight_vendor; |
|
} |
|
static inline void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type) |
|
{ |
|
} |
|
static inline bool acpi_video_handles_brightness_key_presses(void) |
|
{ |
|
return false; |
|
} |
|
static inline int acpi_video_get_levels(struct acpi_device *device, |
|
struct acpi_video_device_brightness **dev_br, |
|
int *pmax_level) |
|
{ |
|
return -ENODEV; |
|
} |
|
#endif |
|
|
|
#endif
|
|
|