ACPI / video: Run _BCL before deciding registering backlight
[sfrench/cifs-2.6.git] / drivers / acpi / video.c
index 807a88a0f394f8a639cbc3f6e2b78073078986cc..41e6b977ceb2428262a403f2a2dfc63f9076d1dd 100644 (file)
@@ -1680,6 +1680,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;
@@ -1687,6 +1700,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;