ACPI video: handle indexed _BQC correctly
authorZhang Rui <rui.zhang@intel.com>
Thu, 9 Apr 2009 06:24:35 +0000 (14:24 +0800)
committerLen Brown <len.brown@intel.com>
Sat, 11 Apr 2009 05:05:58 +0000 (01:05 -0400)
commite047cca66c6bb0b1c346e91305011aab79dfc4b0
treec656787366e002db0ce091a1629f19d0566f94fa
parentd848223808c5d21e1b3cea090047e34722c6254b
ACPI video: handle indexed _BQC correctly

In the current code, for a box with an indexed _BQC method, we
1. get the current brightness level by evaluating _BQC
2. set the value gotten in step 1 to _BCM
3. get the current brightness level again
4. set the _BQC_use_index flag if the results gotten
   in step 1 and in step 3 don't equal.

But this logic doesn't work actually, because the _BQC_use_index
is not set when acpi_video_device_lcd_set_level is invoked.
This results in a failure in step 2.
http://bugzilla.kernel.org/show_bug.cgi?id=12249#c83

Now, we set the _BQC_use_index flag after invoking _BQC for the first
time. And reevaluate the _BQC to get the correct brightness level.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/video.c