aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-12-08 19:53:09 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-12-08 19:53:09 +0100
commit667ae4ee6c29c7ea261d53d3ecc016026d9c2a9a (patch)
tree091de6f263c1764c032d41c958370e3bfcd82225 /drivers
parentACPI / video: update condition to check if device is in _DOD list (diff)
parentACPI / video: Run _BCL before deciding registering backlight (diff)
downloadlinux-dev-667ae4ee6c29c7ea261d53d3ecc016026d9c2a9a.tar.xz
linux-dev-667ae4ee6c29c7ea261d53d3ecc016026d9c2a9a.zip
Merge back earlier ACPI backlight material for 3.19-rc1.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/video.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 9d75ead2a1f9..185a57d13723 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1681,6 +1681,19 @@ static void acpi_video_dev_register_backlight(struct acpi_video_device *device)
printk(KERN_ERR PREFIX "Create sysfs link\n");
}
+static void acpi_video_run_bcl_for_osi(struct acpi_video_bus *video)
+{
+ struct acpi_video_device *dev;
+ union acpi_object *levels;
+
+ mutex_lock(&video->device_list_lock);
+ list_for_each_entry(dev, &video->video_device_list, entry) {
+ if (!acpi_video_device_lcd_query_levels(dev, &levels))
+ kfree(levels);
+ }
+ mutex_unlock(&video->device_list_lock);
+}
+
static int acpi_video_bus_register_backlight(struct acpi_video_bus *video)
{
struct acpi_video_device *dev;
@@ -1688,6 +1701,8 @@ static int acpi_video_bus_register_backlight(struct acpi_video_bus *video)
if (video->backlight_registered)
return 0;
+ acpi_video_run_bcl_for_osi(video);
+
if (!acpi_video_verify_backlight_support())
return 0;