[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1325617358-8286-5-git-send-email-seth.forshee@canonical.com>
Date: Tue, 3 Jan 2012 13:02:38 -0600
From: Seth Forshee <seth.forshee@...onical.com>
To: Matthew Garrett <mjg@...hat.com>
Cc: Len Brown <lenb@...nel.org>, Azael Avalos <coproscefalo@...il.com>,
Thomas Renninger <trenn@...e.de>,
platform-driver-x86@...r.kernel.org, linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org,
Seth Forshee <seth.forshee@...onical.com>
Subject: [PATCH v2 4/4] toshiba_acpi: Add blacklist for models with hotkey problems
Several Satellite models have a buggy implementation of the INFO method
that causes ACPI exceptions when executed:
ACPI Error: Result stack is empty! State=ffff88012d70f800 (20110413/dswstate-98)
ACPI Exception: AE_AML_NO_RETURN_VALUE, Missing or null operand (20110413/dsutils-646)
ACPI Exception: AE_AML_NO_RETURN_VALUE, While creating Arg 0 (20110413/dsutils-763)
ACPI Error: Method parse/execution failed [\_SB_.VALZ.GETE] (Node ffff880131175eb0), AE_AML_NO_RETURN_VALUE (20110413/psparse-536)
ACPI Error: Method parse/execution failed [\_SB_.VALZ.INFO] (Node ffff880131175ed8), AE_AML_NO_RETURN_VALUE (20110413/psparse-536)
toshiba_acpi: ACPI INFO method execution failed
toshiba_acpi: Failed to query hotkey event
To work around this, add a blacklist of models with hotkey problems and
disable the use of hotkeys on these machines.
Signed-off-by: Seth Forshee <seth.forshee@...onical.com>
---
drivers/platform/x86/toshiba_acpi.c | 39 +++++++++++++++++++++++++++++++++++
1 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 6824bf7..fbb8318 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -54,6 +54,7 @@
#include <linux/slab.h>
#include <linux/workqueue.h>
#include <linux/i8042.h>
+#include <linux/dmi.h>
#include <asm/uaccess.h>
@@ -174,6 +175,39 @@ static const struct key_entry toshiba_acpi_keymap[] __devinitconst = {
{ KE_END, 0 },
};
+/* Machines for which hotkeys should not be enabled */
+static struct dmi_system_id __devinitdata toshiba_hotkey_blacklist[] = {
+ {
+ .ident = "Toshiba Satellite C670-10V",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE C670-10V"),
+ },
+ },
+ {
+ .ident = "Toshiba Satellite C670-12E",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE C670-12E"),
+ },
+ },
+ {
+ .ident = "Toshiba Satellite U500",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE U500"),
+ },
+ },
+ {
+ .ident = "Toshiba Satellite Pro L770-116",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE PRO L770-116"),
+ },
+ },
+ {}
+};
+
/* utility
*/
@@ -935,6 +969,11 @@ static int __devinit toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev)
int error;
u32 hci_result;
+ if (dmi_check_system(toshiba_hotkey_blacklist)) {
+ pr_info("Model has known hotkey problems, hotkeys will be disabled\n");
+ return 0;
+ }
+
dev->hotkey_dev = input_allocate_device();
if (!dev->hotkey_dev) {
pr_info("Unable to register input device\n");
--
1.7.5.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists