Re: [PATCH] atkbd: restore autorepeat rate after resume

From: Vojtech Pavlik
Date: Mon Jun 26 2006 - 10:51:36 EST


On Mon, Jun 26, 2006 at 10:21:29AM -0400, Alan Stern wrote:
> From: Linus Torvalds <torvalds@xxxxxxxx>
>
> This patch (as728) makes the AT keyboard driver store the current
> autorepeat rate so that it can be restored properly following a
> suspend/resume cycle.
>
> Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

IMO this should be done in keyboard.c, similar to the LED setting upon
keyboard plug-in.

> ---
>
> Index: usb-2.6/drivers/input/keyboard/atkbd.c
> ===================================================================
> --- usb-2.6.orig/drivers/input/keyboard/atkbd.c
> +++ usb-2.6/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);
> }
>
> @@ -676,10 +678,10 @@ static int atkbd_activate(struct atkbd *
> return -1;
>
> /*
> - * Set autorepeat to fastest possible.
> + * Set autorepeat to whatever it used to be.
> */
>
> - param[0] = 0;
> + param[0] = atkbd_repeatrate;
> if (ps2_command(ps2dev, param, ATKBD_CMD_SETREP))
> return -1;
>
>
>
>

--
Vojtech Pavlik
Director SuSE Labs
-
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/