Re: [PATCH] Disable i8042 checks on Intel Apple Macs

From: Justin P. Mattock
Date: Wed Jan 20 2010 - 14:19:22 EST


On 01/20/10 10:23, Bastien Nocera wrote:
As those computers never had any i8042 controllers, and the
current lookup code could potentially lock up/hang/wait for
timeout for long periods of time.

Fixes intermittent hangs on boot on a MacbookAir1,1

Signed-off-by: Bastien Nocera<hadess@xxxxxxxxxx>
---
drivers/input/serio/i8042.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index d84a36e..2be7207 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -1438,12 +1438,30 @@ static struct platform_driver i8042_driver = {
.shutdown = i8042_shutdown,
};

+static struct dmi_system_id __initdata dmi_system_table[] = {
+ {
+ .matches = {
+ DMI_MATCH(DMI_BIOS_VENDOR, "Apple Computer, Inc.")
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BIOS_VENDOR, "Apple Inc.")
+ },
+ },
+ {}
+};
+
static int __init i8042_init(void)
{
int err;

dbg_init();

+ /* Intel Apple Macs never have an i8042 controller */
+ if (dmi_check_system(dmi_system_table)> 0)
+ return -ENODEV;
+
err = i8042_platform_init();
if (err)
return err;


glad you submitted this. i.g. been looking at some dmi
blacklist thing over here(been racking my brain around
a bit, and seeing your idea simplified it a bit more for me).

as for what you have here, do you think individually
defining each machine is safer, or does it not matter?

I've been looking at this as well, to get a better idea:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7121413f2accf14cf05b38539fb7a8be77543370;hp=1a133e0c9dabda23e6693cabfdc1d5106dca5fc2

Justin P. Mattock



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/