Message ID | 547A6F75.6050806@intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
On Sunday, November 30, 2014 09:14:29 AM Aaron Lu wrote: > On 11/30/2014 01:34 AM, Brian Norris wrote: > > Tested-by: Brian Norris <computersforpeace@gmail.com> > > Thanks for the test! Updated patch with changelog: > > From 0b11bb529245ddceb69eb558477b9b4a81208f4b Mon Sep 17 00:00:00 2001 > From: Aaron Lu <aaron.lu@intel.com> > Date: Sun, 30 Nov 2014 09:01:15 +0800 > Subject: [PATCH] ACPI / video: update the condition to check if a device is in _DOD list > > Commit 0b8db271f159 ("ACPI / video: check _DOD list when creating > backlight devices") checks if the video device is in the bind devices > list to decide if we should create backlight device for it, that causes > problem for one Dell Latitude E6410, where none of the video output > devices are properly bound due to the way how we did the comparing > between its _ADR and the _DOD's values. Solve this problem by comparing > the lower 12 bits of both the device's _ADR and the _DOD's values instead > of relying on bind result. > > Fixes: 0b8db271f159 ("ACPI / video: check _DOD list when creating backlight devices") > Signed-off-by: Aaron Lu <aaron.lu@intel.com> > Tested-by: Brian Norris <computersforpeace@gmail.com> Queued up as a fix for 3.18. > --- > drivers/acpi/video.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c > index 41e6b977ceb2..185a57d13723 100644 > --- a/drivers/acpi/video.c > +++ b/drivers/acpi/video.c > @@ -1164,7 +1164,8 @@ static bool acpi_video_device_in_dod(struct acpi_video_device *device) > return true; > > for (i = 0; i < video->attached_count; i++) { > - if (video->attached_array[i].bind_info == device) > + if ((video->attached_array[i].value.int_val & 0xfff) == > + (device->device_id & 0xfff)) > return true; > } > >
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 41e6b977ceb2..185a57d13723 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c @@ -1164,7 +1164,8 @@ static bool acpi_video_device_in_dod(struct acpi_video_device *device) return true; for (i = 0; i < video->attached_count; i++) { - if (video->attached_array[i].bind_info == device) + if ((video->attached_array[i].value.int_val & 0xfff) == + (device->device_id & 0xfff)) return true; }