36 #include <linux/export.h>
39 #include <linux/pci.h>
41 #define PREFIX "ACPI: "
44 #define _COMPONENT ACPI_VIDEO_COMPONENT
46 static long acpi_video_support;
47 static bool acpi_video_caps_checked;
60 *cap |= ACPI_VIDEO_BACKLIGHT;
63 "cannot determine initial brightness\n");
89 video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
93 video_caps |= ACPI_VIDEO_ROM_AVAILABLE;
99 video_caps |= ACPI_VIDEO_DEVICE_POSTING;
116 struct acpi_device *acpi_dev;
137 static int video_detect_force_vendor(
const struct dmi_system_id *
d)
139 acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
151 .callback = video_detect_force_vendor,
160 .callback = video_detect_force_vendor,
161 .ident =
"Asus UL30VT",
180 struct acpi_device *tmp_dev;
183 if (acpi_video_caps_checked && graphics_handle ==
NULL)
184 return acpi_video_support;
186 if (!graphics_handle) {
192 acpi_video_support |=
caps;
193 acpi_video_caps_checked = 1;
215 graphics_handle ? caps : acpi_video_support,
216 graphics_handle ?
"on device " :
"in general",
217 graphics_handle ? acpi_device_bid(tmp_dev) :
""));
222 static void acpi_video_caps_check(
void)
228 if (!acpi_video_caps_checked)
240 acpi_video_caps_check();
241 acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
249 acpi_video_caps_check();
250 acpi_video_support &= ~ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
257 acpi_video_caps_check();
260 if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR)
262 else if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO)
266 if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_DMI_VENDOR)
268 else if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_DMI_VIDEO)
272 return acpi_video_support & ACPI_VIDEO_BACKLIGHT;
280 static int __init acpi_backlight(
char *
str)
282 if (str ==
NULL || *str ==
'\0')
285 if (!
strcmp(
"vendor", str))
286 acpi_video_support |=
287 ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR;
288 if (!
strcmp(
"video", str))
289 acpi_video_support |=
290 ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO;
294 __setup(
"acpi_backlight=", acpi_backlight);