Commit d64c81c4 authored by Henrique de Moraes Holschuh's avatar Henrique de Moraes Holschuh Committed by Len Brown

ACPI: thinkpad-acpi: Remove firmware backlight delays for Intel ACPI IGD OpRegion

Based on analysis and a patch from Matthew Garrett <mjg59@srcf.ucam.org>.

Instruct the ThinkPad ACPI firmware to remove delays on the processing of
backlight brightness changes.  This method is present on ThinkPad
Vista-compatible BIOSes with standard ACPI backlight level control.
Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Yves-Alexis Perez <corsac@debian.org>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 39629323
...@@ -838,6 +838,13 @@ static int parse_strtoul(const char *buf, ...@@ -838,6 +838,13 @@ static int parse_strtoul(const char *buf,
return 0; return 0;
} }
static void tpacpi_disable_brightness_delay(void)
{
if (acpi_evalf(hkey_handle, NULL, "PWMS", "qvd", 0))
printk(TPACPI_NOTICE
"ACPI backlight control delay disabled\n");
}
static int __init tpacpi_query_bcl_levels(acpi_handle handle) static int __init tpacpi_query_bcl_levels(acpi_handle handle)
{ {
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
...@@ -2139,6 +2146,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2139,6 +2146,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
if (!tp_features.hotkey) if (!tp_features.hotkey)
return 1; return 1;
tpacpi_disable_brightness_delay();
hotkey_dev_attributes = create_attr_set(13, NULL); hotkey_dev_attributes = create_attr_set(13, NULL);
if (!hotkey_dev_attributes) if (!hotkey_dev_attributes)
return -ENOMEM; return -ENOMEM;
...@@ -2512,6 +2521,8 @@ static void hotkey_suspend(pm_message_t state) ...@@ -2512,6 +2521,8 @@ static void hotkey_suspend(pm_message_t state)
static void hotkey_resume(void) static void hotkey_resume(void)
{ {
tpacpi_disable_brightness_delay();
if (hotkey_mask_get()) if (hotkey_mask_get())
printk(TPACPI_ERR printk(TPACPI_ERR
"error while trying to read hot key mask " "error while trying to read hot key mask "
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment