ACPI / video: skip evaluating _DOD when it does not exist
diff mbox

Message ID 1476818337-23685-2-git-send-email-alex.hung@canonical.com
State New
Headers show

Commit Message

Alex Hung Oct. 18, 2016, 7:18 p.m. UTC
Some system supports hybrid graphics and its discrete VGA
does not have any connectors and therefore has no _DOD method.

BugLink: http://bugs.launchpad.net/bugs/1634607

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>
(cherry picked from commit e34fbbac669de0b7fb7803929d0477f35f6e2833)
Signed-off-by: Alex Hung <alex.hung@canonical.com>
---
 drivers/acpi/acpi_video.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Tim Gardner Oct. 18, 2016, 8:04 p.m. UTC | #1

Colin Ian King Oct. 18, 2016, 9:55 p.m. UTC | #2
On 18/10/16 20:18, Alex Hung wrote:
> Some system supports hybrid graphics and its discrete VGA
> does not have any connectors and therefore has no _DOD method.
> 
> BugLink: http://bugs.launchpad.net/bugs/1634607
> 
> 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>
> (cherry picked from commit e34fbbac669de0b7fb7803929d0477f35f6e2833)
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  drivers/acpi/acpi_video.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> index 5fdac39..549cdbe 100644
> --- a/drivers/acpi/acpi_video.c
> +++ b/drivers/acpi/acpi_video.c
> @@ -1211,6 +1211,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"));
> 
Upstream cherry pick, solves the problem and it not having the _DOD
(Enumerate All Devices Attached to the Display Adapter) makes sense to
return AE_NOT_EXIST.

Acked-by: Colin Ian King <colin.king@canonical.com>
Seth Forshee Oct. 21, 2016, 7:45 p.m. UTC | #3
On Tue, Oct 18, 2016 at 12:18:57PM -0700, Alex Hung wrote:
> Some system supports hybrid graphics and its discrete VGA
> does not have any connectors and therefore has no _DOD method.
> 
> BugLink: http://bugs.launchpad.net/bugs/1634607
> 
> 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>
> (cherry picked from commit e34fbbac669de0b7fb7803929d0477f35f6e2833)
> Signed-off-by: Alex Hung <alex.hung@canonical.com>

Applied to xenial.

Patch
diff mbox

diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 5fdac39..549cdbe 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -1211,6 +1211,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"));