|
|
@@ -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;
|
|
|
|