diff options
| author | Vojtech Pavlik <vojtech@suse.cz> | 2002-10-09 12:54:14 +0200 |
|---|---|---|
| committer | Vojtech Pavlik <vojtech@suse.cz> | 2002-10-09 12:54:14 +0200 |
| commit | d3ca7378ff7372a0c06184d715ff702027f3e168 (patch) | |
| tree | 7a35d2f3f11a0eca7a4109bbc89cf38569490e08 /drivers/input | |
| parent | 8e12e1f9fdc413418e3bac8776f40a341ff77b4a (diff) | |
| parent | 29365575af50d39d3d6ae7ccf9c495e31c0660d1 (diff) | |
Merge Linus's i8042 PgUp fix (conflicted with mine).
Diffstat (limited to 'drivers/input')
| -rw-r--r-- | drivers/input/keyboard/atkbd.c | 2 | ||||
| -rw-r--r-- | drivers/input/serio/i8042.c | 20 | ||||
| -rw-r--r-- | drivers/input/serio/i8042.h | 2 |
3 files changed, 13 insertions, 11 deletions
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index 537f97ad3ab4..bc8e89124152 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c @@ -44,7 +44,7 @@ static unsigned char atkbd_set2_keycode[512] = { 0, 49, 48, 35, 34, 21, 7, 0, 0, 0, 50, 36, 22, 8, 9, 0, 0, 51, 37, 23, 24, 11, 10, 0, 0, 52, 53, 38, 39, 25, 12, 0, 122, 89, 40,120, 26, 13, 0, 0, 58, 54, 28, 27, 0, 43, 0, 0, - 85, 86, 90, 91, 92, 93, 14, 94, 95, 79, 43, 75, 71,121, 0,123, + 85, 86, 90, 91, 92, 93, 14, 94, 95, 79,183, 75, 71,121, 0,123, 82, 83, 80, 76, 77, 72, 1, 69, 87, 78, 81, 74, 55, 73, 70, 99, 252, 0, 0, 65, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 53ed2a2e3c38..c810a637b972 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c @@ -161,7 +161,7 @@ static int i8042_command(unsigned char *param, int command) param[i] = ~i8042_read_data(); else param[i] = i8042_read_data(); - dbg("%02x <- i8042 (return)\n", param[i]); + dbg("%02x <- i8042 (return)", param[i]); } spin_unlock_irqrestore(&i8042_lock, flags); @@ -655,24 +655,26 @@ static int __init i8042_check_aux(struct i8042_values *values) i8042_flush(); /* - * Internal loopback test - filters out AT-type i8042's + * Internal loopback test - filters out AT-type i8042's. Unfortunately + * SiS screwed up and their 5597 doesn't support the LOOP command even + * though it has an AUX port. */ param = 0x5a; - if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != 0xa5) - return -1; + if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != 0xa5) { /* * External connection test - filters out AT-soldered PS/2 i8042's * 0x00 - no error, 0x01-0x03 - clock/data stuck, 0xff - general error * 0xfa - no error on some notebooks which ignore the spec - * We ignore general error, since some chips report it even under normal - * operation. + * Because it's common for chipsets to return error on perfectly functioning + * AUX ports, we test for this only when the LOOP command failed. */ - if (i8042_command(¶m, I8042_CMD_AUX_TEST) - || (param && param != 0xfa && param != 0xff)) - return -1; + if (i8042_command(¶m, I8042_CMD_AUX_TEST) + || (param && param != 0xfa && param != 0xff)) + return -1; + } /* * Bit assignment test - filters out PS/2 i8042's in AT mode diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h index 8b970d1f87d1..f694a2d75acb 100644 --- a/drivers/input/serio/i8042.h +++ b/drivers/input/serio/i8042.h @@ -104,7 +104,7 @@ #ifdef DEBUG static unsigned long i8042_start; #define dbg_init() do { i8042_start = jiffies; } while (0); -#define dbg(format, arg...) printk(KERN_DEBUG __FILE__ ": " format "[%d]\n" ,\ +#define dbg(format, arg...) printk(KERN_DEBUG __FILE__ ": " format " [%d]\n" ,\ ## arg, (int) (jiffies - i8042_start)) #else #define dbg_init() do { } while (0); |
