diff options
author | Henrique de Moraes Holschuh <hmh@hmh.eng.br> | 2008-10-18 14:23:55 -0300 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-10-22 18:14:39 -0400 |
commit | d64c81c4cea0a14e88fc76e2c845e4885e491754 (patch) | |
tree | 027ce730772db3a6f7f0004397be408b9a64c3d9 /drivers/misc/thinkpad_acpi.c | |
parent | 396293237cbc964fcedd4208cbc0d0f4880a98bb (diff) | |
download | op-kernel-dev-d64c81c4cea0a14e88fc76e2c845e4885e491754.zip op-kernel-dev-d64c81c4cea0a14e88fc76e2c845e4885e491754.tar.gz |
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: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Yves-Alexis Perez <corsac@debian.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/misc/thinkpad_acpi.c')
-rw-r--r-- | drivers/misc/thinkpad_acpi.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c index 4c47f9b..17b8281 100644 --- a/drivers/misc/thinkpad_acpi.c +++ b/drivers/misc/thinkpad_acpi.c @@ -838,6 +838,13 @@ static int parse_strtoul(const char *buf, 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) { struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; @@ -2139,6 +2146,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) if (!tp_features.hotkey) return 1; + tpacpi_disable_brightness_delay(); + hotkey_dev_attributes = create_attr_set(13, NULL); if (!hotkey_dev_attributes) return -ENOMEM; @@ -2512,6 +2521,8 @@ static void hotkey_suspend(pm_message_t state) static void hotkey_resume(void) { + tpacpi_disable_brightness_delay(); + if (hotkey_mask_get()) printk(TPACPI_ERR "error while trying to read hot key mask " |