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

David N. Welton
2004-08-12T17:23:38Z

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@eidetix.com