Re: 2.6 kernel won't reboot on AMD system - 8042 problem?

From: David N. Welton
Date: Thu Aug 12 2004 - 12:24:54 EST


David N. Welton wrote:

Sascha, if you want to test it out, try this in i8042_controller_init,
at about line 724 (near this: i8042_initial_ctr = i8042_ctr;)

{
unsigned char pram;
pram = (~i8042_ctr) & 0xff ;
i8042_command(&pram, I8042_CMD_CTL_WCTR);
}

In fact, it's enough to fix the problem on my machine! I can even plug the keyboard back in and it works.

--- /home/davidw/linux-2.6.7/drivers/input/serio/i8042.c 2004-06-16 07:18
:57.000000000 +0200
+++ drivers/input/serio/i8042.c 2004-08-12 19:05:17.000000000 +0200
@@ -710,6 +710,9 @@
return -1;
}

+
+ i8042_ctr = (~i8042_ctr) & 0xff;
+
i8042_initial_ctr = i8042_ctr;

Try that and see how it works for you (sorry 'bout the formatting... at work I have Mozilla Thunderbird).

Now... I guess the problem is: 1) why the heck does that work? 2) How to integrate it into the kernel? I don't suppose everyone else wants their register values inverted.

--
David N. Welton
davidw@xxxxxxxxxxx
-
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/