| From 2c62333a408f5badd2d2ffd7177f95deeccc5ca4 Mon Sep 17 00:00:00 2001 |
| From: Aaron Lu <aaron.lu@intel.com> |
| Date: Wed, 6 Nov 2013 09:07:10 +0800 |
| Subject: ACPI / video: Quirk initial backlight level 0 |
| |
| From: Aaron Lu <aaron.lu@intel.com> |
| |
| commit 2c62333a408f5badd2d2ffd7177f95deeccc5ca4 upstream. |
| |
| Some firmware doesn't initialize initial backlight level to a proper |
| value and _BQC will return 0 on first time evaluation. We used to be |
| able to detect such incorrect value with our code logic, as value 0 |
| normally isn't a valid value in _BCL. But with the introduction of Win8, |
| firmware begins to fill _BCL with values from 0 to 100, now 0 becomes |
| a valid value but that value will make user's screen black. This patch |
| test initial _BQC for value 0, if such a value is returned, do not use |
| it. |
| |
| References: https://bugzilla.kernel.org/show_bug.cgi?id=64031 |
| References: https://bugzilla.kernel.org/show_bug.cgi?id=61231 |
| References: https://bugzilla.kernel.org/show_bug.cgi?id=63111 |
| Reported-by: Qingshuai Tian <qingshuai.tian@intel.com> |
| Tested-by: Aaron Lu <aaron.lu@intel.com> # on "Idealpad u330p" |
| Reported-and-tested-by: <erno@iki.fi> # on "Acer Aspire V5-573G" |
| Reported-and-tested-by: Kirill Tkhai <tkhai@yandex.ru> # on "HP 250 G1" |
| Signed-off-by: Aaron Lu <aaron.lu@intel.com> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/acpi/video.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/acpi/video.c |
| +++ b/drivers/acpi/video.c |
| @@ -846,7 +846,7 @@ acpi_video_init_brightness(struct acpi_v |
| for (i = 2; i < br->count; i++) |
| if (level_old == br->levels[i]) |
| break; |
| - if (i == br->count) |
| + if (i == br->count || !level) |
| level = max_level; |
| } |
| |