[PATCH] Input: i8042 - move Dritek quirk so it also gets applied on resume

From: Bruno Prémont
Date: Fri May 16 2008 - 16:19:13 EST


This patch moves the quirk from from i8042_probe() to i8042_enable_kbd_port()
which is also called during resume.

I think it is safe to ignore failure to enable dritek. I would also prefer not
to fail complete keyboard initialisation if the extension fails.

---
The Dritek quirk is also required on resume from S2RAM, doing it only at probe
time is not sufficient.


Signed-off-by: Bruno Prémont <bonbons@xxxxxxxxxxxxxxxxx>
CC: Dmitry Torokhov <dtor@xxxxxxx>

diff -NurpP linux-2.6.25.4-orig/drivers/input/serio/i8042.c
linux-2.6.25.4/drivers/input/serio/i8042.c
--- linux-2.6.25.4-orig/drivers/input/serio/i8042.c 2008-04-17
04:49:44.000000000 +0200
+++ linux-2.6.25.4/drivers/input/serio/i8042.c 2008-05-16 21:37:12.000000000
+0200
@@ -404,6 +404,15 @@ static int i8042_enable_kbd_port(void)
printk(KERN_ERR "i8042.c: Failed to enable KBD port.\n");
return -EIO;
}
+#ifdef CONFIG_X86
+ if (i8042_dritek) {
+ char param = 0x90;
+ int error = i8042_command(&param, 0x1059);
+ if (error)
+ printk(KERN_WARNING "Failed to enable DRITEK "
+ "extension: %d\n", error);
+ }
+#endif

return 0;
}
@@ -1171,14 +1179,6 @@ static int __devinit i8042_probe(struct
if (error)
goto out_fail;
}
-#ifdef CONFIG_X86
- if (i8042_dritek) {
- char param = 0x90;
- error = i8042_command(&param, 0x1059);
- if (error)
- goto out_fail;
- }
-#endif
/*
* Ok, everything is ready, let's register all serio ports
*/

--
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/