ACPI: video: Loosen strictness of video bus detection code
BugLink: http://bugs.launchpad.net/bugs/333386 Currently a video bus device must (beside other criteria) define _DOD and _DOS methods to be considered a video device. Some broken BIOSes prevented working backlight control by only defining both for one (non-existing bus) and only _DOD for the rest. With this patch in place the other bus definitions were considered too and backlight control started to work again. Signed-off-by: Stefan Bader <stefan.bader@canonical.com> Acked-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
@@ -1109,7 +1109,12 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Does this device support video switching? */
|
/* Does this device support video switching? */
|
||||||
if (video->cap._DOS) {
|
if (video->cap._DOS || video->cap._DOD) {
|
||||||
|
if (!video->cap._DOS) {
|
||||||
|
printk(KERN_WARNING FW_BUG
|
||||||
|
"ACPI(%s) defines _DOD but not _DOS\n",
|
||||||
|
acpi_device_bid(video->device));
|
||||||
|
}
|
||||||
video->flags.multihead = 1;
|
video->flags.multihead = 1;
|
||||||
status = 0;
|
status = 0;
|
||||||
}
|
}
|
||||||
|
@@ -84,7 +84,7 @@ long acpi_is_video_device(struct acpi_device *device)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Does this device able to support video switching ? */
|
/* Does this device able to support video switching ? */
|
||||||
if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
|
if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
|
||||||
ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
|
ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
|
||||||
video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
|
video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user