ACPI / video: skip evaluating _DOD when it does not exist
authorAlex Hung <alex.hung@canonical.com>
Fri, 27 May 2016 07:47:06 +0000 (15:47 +0800)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:17:36 +0000 (13:17 +0000)
commit e34fbbac669de0b7fb7803929d0477f35f6e2833 upstream.

Some system supports hybrid graphics and its discrete VGA
does not have any connectors and therefore has no _DOD method.

Signed-off-by: Alex Hung <alex.hung@canonical.com>
Reviewed-by: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/acpi/video.c

index 0dc9ff61d7c2e5b72691855f04d95c593d699a2b..e3ecaf4d64f4f4ab4ee3d876bb3e8334ffaef6ed 100644 (file)
@@ -1263,6 +1263,9 @@ static int acpi_video_device_enumerate(struct acpi_video_bus *video)
        union acpi_object *dod = NULL;
        union acpi_object *obj;
 
+       if (!video->cap._DOD)
+               return AE_NOT_EXIST;
+
        status = acpi_evaluate_object(video->device->handle, "_DOD", NULL, &buffer);
        if (!ACPI_SUCCESS(status)) {
                ACPI_EXCEPTION((AE_INFO, status, "Evaluating _DOD"));