]> rtime.felk.cvut.cz Git - linux-imx.git/commit
ACPI / video: improve quirk check in acpi_video_bqc_quirk()
authorFelipe Contreras <felipe.contreras@gmail.com>
Sat, 3 Aug 2013 21:00:25 +0000 (23:00 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 4 Aug 2013 21:45:39 +0000 (23:45 +0200)
commitb3b301c5fed8a0868e56c98b922cb0c881b3857d
treeadd3a807e37d55993d7ae9ea74fff062dae5da32
parentc095ba7224d8edc71dcef0d655911399a8bd4a3f
ACPI / video: improve quirk check in acpi_video_bqc_quirk()

If the _BCL package ordering is descending, the first level
(br->levels[2]) is likely to be 0, and if the number of levels
matches the number of steps, we might confuse a returned level to
mean the index.

For example:

  current_level = max_level = 100
  test_level = 0
  returned level = 100

In this case 100 means the level, not the index, and _BCM failed.
Still, if the _BCL package ordering is descending, the index of
level 0 is also 100, so we assume _BQC is indexed, when it's not.

This causes all _BQC calls to return bogus values causing weird
behavior from the user's perspective.  For example:

xbacklight -set 10; xbacklight -set 20;

would flash to 90% and then slowly down to the desired level (20).

The solution is simple; test anything other than the first level
(e.g. 1).

[rjw: Changelog]
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/video.c