On Sat, 24 Jun 2006, Alan Stern wrote: > > Is this an okay place to point out that after resume-from-disk, the i8042 > keyboard auto-repeat rate settings are messed up? Does this fix it for you? (Totally untested - I don't have PS/2 keyboards any more on the machines I actually use..) > The VT console font is not restored either. I don't think it ever has been, has it? That needs to be done by user space, it would be pretty wasteful to do it from the kernel.. Linus --- diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index fad04b6..d648242 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c @@ -39,6 +39,8 @@ static int atkbd_set = 2; module_param_named(set, atkbd_set, int, 0); MODULE_PARM_DESC(set, "Select keyboard code set (2 = default, 3 = PS/2 native)"); +static int atkbd_repeatrate; + #if defined(__i386__) || defined(__x86_64__) || defined(__hppa__) static int atkbd_reset; #else @@ -477,7 +479,7 @@ static void atkbd_event_work(void *data) j++; dev->rep[REP_PERIOD] = period[i]; dev->rep[REP_DELAY] = delay[j]; - param[0] = i | (j << 5); + param[0] = atkbd_repeatrate = i | (j << 5); ps2_command(&atkbd->ps2dev, param, ATKBD_CMD_SETREP); } @@ -679,7 +681,7 @@ static int atkbd_activate(struct atkbd * * Set autorepeat to fastest possible. */ - param[0] = 0; + param[0] = atkbd_repeatrate; if (ps2_command(ps2dev, param, ATKBD_CMD_SETREP)) return -1;