summaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2010-12-06 15:04:27 +0800
committerLen Brown <len.brown@intel.com>2010-12-14 00:10:46 -0500
commit99fd1895ef603f1a0fa9af478c96c637a7b4529d (patch)
treedc743eab1679a1a985e52908463ddae8b605315d /drivers/acpi
parentcf7d7e5a1980d1116ee152d25dac382b112b9c17 (diff)
downloadlinux-99fd1895ef603f1a0fa9af478c96c637a7b4529d.tar.bz2
ACPI video: introduce module parameter video.use_bios_initial_backlight
Introduce module parameter video.use_bios_initial_backlight. Some BIOSes claim they use the minimum backlight at boot, and this may bring dimming screen after boot. https://bugzilla.kernel.org/show_bug.cgi?id=21212 use video.use_bios_initl_backlight=0 to use the maximum backlight level after boot. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/video.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 5cd0228d2daa..89f19a8fc726 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -81,6 +81,13 @@ module_param(brightness_switch_enabled, bool, 0644);
static int allow_duplicates;
module_param(allow_duplicates, bool, 0644);
+/*
+ * Some BIOSes claim they use minimum backlight at boot,
+ * and this may bring dimming screen after boot
+ */
+static int use_bios_initial_backlight = 1;
+module_param(use_bios_initial_backlight, bool, 0644);
+
static int register_count = 0;
static int acpi_video_bus_add(struct acpi_device *device);
static int acpi_video_bus_remove(struct acpi_device *device, int type);
@@ -766,9 +773,11 @@ acpi_video_init_brightness(struct acpi_video_device *device)
* when invoked for the first time, i.e. level_old is invalid.
* set the backlight to max_level in this case
*/
- for (i = 2; i < br->count; i++)
- if (level_old == br->levels[i])
- level = level_old;
+ if (use_bios_initial_backlight) {
+ for (i = 2; i < br->count; i++)
+ if (level_old == br->levels[i])
+ level = level_old;
+ }
goto set_level;
}