linux/drivers/acpi
Danny Baumann a89803df9c ACPI / video: Fix brightness control initialization for some laptops.
In particular, this fixes brightness control initialization for all
devices that return index values from _BQC and don't happen to have the
initial index set by the BIOS in their _BCL table. One example for that
is the Dell Inspiron 15R SE (model number 7520).

What happened for those devices is that acpi_init_brightness queried the
initial brightness by calling acpi_video_device_lcd_get_level_current.
This called _BQC, which returned e.g. 13. As _BQC_use_index isn't
determined at this point (and thus has its initial value of 0), the
index isn't converted into the actual level. As '13' isn't present in
the _BCL list, *level is later overwritten with brightness->curr, which
was initialized to max_level (100) before. Later in
acpi_init_brightness, level_old (with the value 100) is used as an index
into the _BCL table, which causes a value outside of the actual table to
be used as input into acpi_video_device_lcd_set_level(). Depending on
the (undefined) value of that location, this call will fail, causing the
brightness control for the device in question not to be enabled.

Fix that by returning the raw value returned by the _BQC call in the
initialization case.

Signed-off-by: Danny Baumann <dannybaumann@web.de>
Reviewed-by: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2013-03-25 00:26:54 +01:00
..
acpica ACPICA: Update predefined info table for _MLS method 2013-01-25 13:30:48 +01:00
apei Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac 2013-02-28 20:42:33 -08:00
Kconfig Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-02-27 16:16:39 -08:00
Makefile ACPI: add support for CSRT table 2013-01-19 22:16:21 +01:00
ac.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
acpi_i2c.c i2c / ACPI: add ACPI enumeration support 2012-11-23 12:23:40 +01:00
acpi_ipmi.c
acpi_memhotplug.c memory-hotplug: remove sysfs file of node 2013-02-23 17:50:13 -08:00
acpi_pad.c ACPI / acpi_pad: Used PTR_RET 2013-03-25 00:13:15 +01:00
acpi_platform.c ACPI / platform: Use struct acpi_scan_handler for creating devices 2013-01-30 14:27:40 +01:00
battery.c ACPI: suppress compiler warning in battery.c 2013-03-25 00:05:48 +01:00
bgrt.c efi: Fix the ACPI BGRT driver for images located in EFI boot services memory 2012-09-29 12:21:03 -07:00
blacklist.c acpi: delete module.h include from files explicitly not needing it 2011-10-31 19:30:33 -04:00
bus.c ACPI: replace kmalloc+memcpy with kmemdup 2013-03-24 23:31:33 +01:00
button.c ACPI: suppress compiler warnings in button.c 2013-03-25 00:05:48 +01:00
cm_sbs.c
container.c ACPI: suppress compiler warning in container.c 2013-03-25 00:05:48 +01:00
csrt.c ACPI: add support for CSRT table 2013-01-19 22:16:21 +01:00
custom_method.c The sweeping change is to make add_taint() explicitly indicate whether to disable 2013-02-25 15:41:43 -08:00
debugfs.c acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:30:34 -04:00
device_pm.c Merge branch 'acpi-scan' 2013-02-11 13:20:02 +01:00
dock.c ACPI / hotplug: Fix concurrency issues and memory leaks 2013-02-13 14:36:47 +01:00
ec.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
ec_sys.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
event.c acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:30:34 -04:00
fan.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
glue.c ACPI / glue: Drop .find_bridge() callback from struct acpi_bus_type 2013-03-04 14:23:40 +01:00
hed.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
internal.h ACPI and power management fixes for 3.9-rc1 2013-02-25 21:25:17 -08:00
numa.c x86, ACPI, mm: Revert movablemem_map support 2013-03-02 09:34:39 -08:00
nvs.c ACPI / PM: print physical addresses consistently with other parts of kernel 2012-03-30 02:46:57 -04:00
osl.c ACPI: Use resource_size() in osl.c 2013-03-25 00:15:37 +01:00
pci_irq.c PCI/ACPI: Don't cache _PRT, and don't associate them with bus numbers 2013-02-16 11:58:34 -07:00
pci_link.c ACPI / PCI: Make PCI IRQ link driver use struct acpi_scan_handler 2013-01-30 14:27:37 +01:00
pci_root.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
pci_slot.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
power.c ACPI / PM: Take unusual configurations of power resources into account 2013-02-23 23:15:21 +01:00
proc.c ACPI / PM: Fix /proc/acpi/wakeup for devices w/o bus or parent 2013-01-27 21:40:11 +01:00
processor_core.c ACPI / processor: Remove redundant NULL check before kfree 2013-03-04 14:23:39 +01:00
processor_driver.c ACPI / porocessor: Beautify code, pr->id is u32 which is never < 0 2013-03-04 14:23:39 +01:00
processor_idle.c Merge branch 'misc' into release 2013-02-18 00:25:53 -05:00
processor_perflib.c acpi: Export the acpi_processor_get_performance_info 2013-03-06 10:00:34 -05:00
processor_thermal.c ACPI: Do cpufreq clamping for throttling per package v2 2012-03-22 02:16:14 -04:00
processor_throttling.c ACPI: suppress compiler warnings in processor_throttling.c 2013-03-25 00:05:48 +01:00
reboot.c Revert "ACPI: ignore FADT reset-reg-sup flag" 2012-04-20 11:19:35 -07:00
resource.c ACPI: remove unnecessary INIT_LIST_HEAD 2012-11-27 13:49:36 +01:00
sbs.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
sbshc.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
sbshc.h
scan.c ACPI and power management fixes for 3.9-rc1 2013-02-25 21:25:17 -08:00
sleep.c ACPI / Sleep: Avoid interleaved message on errors 2013-03-04 14:23:39 +01:00
sleep.h ACPI: Drop power resources driver 2013-01-17 14:11:06 +01:00
sysfs.c ACPI sysfs: remove unnecessary newline from exception 2013-01-26 00:34:21 +01:00
tables.c ACPICA: Cleanup table handler naming conflicts. 2013-01-11 13:10:16 +01:00
thermal.c Merge branch 'acpi-assorted' 2013-02-15 13:58:43 +01:00
utils.c ACPI: Add acpi_handle_<level>() interfaces 2012-11-21 23:20:22 +01:00
video.c ACPI / video: Fix brightness control initialization for some laptops. 2013-03-25 00:26:54 +01:00
video_detect.c ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist 2012-11-30 13:02:50 +01:00
wakeup.c