diff --git a/sys/dev/adb/adb_kbd.c b/sys/dev/adb/adb_kbd.c --- a/sys/dev/adb/adb_kbd.c +++ b/sys/dev/adb/adb_kbd.c @@ -690,8 +690,8 @@ { /* These numbers are in microseconds, so convert to ticks */ - static int delays[] = { 250, 500, 750, 1000 }; - static int rates[] = { 34, 38, 42, 46, 50, 55, 59, 63, + static int delays[] = { 200, 250, 500, 750, 1000 }; + static int rates[] = { 15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504 }; diff --git a/sys/dev/atkbdc/atkbd.c b/sys/dev/atkbdc/atkbd.c --- a/sys/dev/atkbdc/atkbd.c +++ b/sys/dev/atkbdc/atkbd.c @@ -1571,8 +1571,8 @@ return ((id2 << 8) | id1); } -static int delays[] = { 250, 500, 750, 1000 }; -static int rates[] = { 34, 38, 42, 46, 50, 55, 59, 63, +static int delays[] = { 200, 250, 500, 750, 1000 }; +static int rates[] = { 15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504 }; diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include "opt_isa.h" +#include "opt_kbd.h" #include "opt_psm.h" #include "opt_evdev.h" diff --git a/sys/dev/gpio/gpiokeys.c b/sys/dev/gpio/gpiokeys.c --- a/sys/dev/gpio/gpiokeys.c +++ b/sys/dev/gpio/gpiokeys.c @@ -975,8 +975,8 @@ static int gpiokeys_set_typematic(keyboard_t *kbd, int code) { - static const int delays[] = {250, 500, 750, 1000}; - static const int rates[] = {34, 38, 42, 46, 50, 55, 59, 63, + static const int delays[] = {200, 250, 500, 750, 1000}; + static const int rates[] = {15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504}; diff --git a/sys/dev/hid/hkbd.c b/sys/dev/hid/hkbd.c --- a/sys/dev/hid/hkbd.c +++ b/sys/dev/hid/hkbd.c @@ -1832,8 +1832,8 @@ #ifdef EVDEV_SUPPORT struct hkbd_softc *sc = kbd->kb_data; #endif - static const int delays[] = {250, 500, 750, 1000}; - static const int rates[] = {34, 38, 42, 46, 50, 55, 59, 63, + static const int delays[] = {200, 250, 500, 750, 1000}; + static const int rates[] = {15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504}; diff --git a/sys/dev/kbdmux/kbdmux.c b/sys/dev/kbdmux/kbdmux.c --- a/sys/dev/kbdmux/kbdmux.c +++ b/sys/dev/kbdmux/kbdmux.c @@ -964,11 +964,11 @@ kbdmux_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg) { static int delays[] = { - 250, 500, 750, 1000 + 200, 250, 500, 750, 1000 }; static int rates[] = { - 34, 38, 42, 46, 50, 55, 59, 63, + 15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504 diff --git a/sys/dev/usb/input/ukbd.c b/sys/dev/usb/input/ukbd.c --- a/sys/dev/usb/input/ukbd.c +++ b/sys/dev/usb/input/ukbd.c @@ -2002,8 +2002,8 @@ #ifdef EVDEV_SUPPORT struct ukbd_softc *sc = kbd->kb_data; #endif - static const int delays[] = {250, 500, 750, 1000}; - static const int rates[] = {34, 38, 42, 46, 50, 55, 59, 63, + static const int delays[] = {200, 250, 500, 750, 1000}; + static const int rates[] = {15 ,34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504}; diff --git a/sys/dev/vkbd/vkbd.c b/sys/dev/vkbd/vkbd.c --- a/sys/dev/vkbd/vkbd.c +++ b/sys/dev/vkbd/vkbd.c @@ -1305,8 +1305,8 @@ * Local functions */ -static int delays[] = { 250, 500, 750, 1000 }; -static int rates[] = { 34, 38, 42, 46, 50, 55, 59, 63, +static int delays[] = { 200, 250, 500, 750, 1000 }; +static int rates[] = { 15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504 }; diff --git a/usr.sbin/kbdcontrol/kbdcontrol.1 b/usr.sbin/kbdcontrol/kbdcontrol.1 --- a/usr.sbin/kbdcontrol/kbdcontrol.1 +++ b/usr.sbin/kbdcontrol/kbdcontrol.1 @@ -104,10 +104,10 @@ .Xc Set keyboard .Ar delay -(250, 500, 750, 1000) +(200, 250, 500, 750, 1000) and .Ar repeat -(34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, +(15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504) rates, or if a @@ -116,7 +116,9 @@ .Cm slow (1000.504), .Cm fast -(250.34) +(250.34), +.Cm ultra +(200.15) or .Cm normal (500.126). diff --git a/usr.sbin/kbdcontrol/kbdcontrol.c b/usr.sbin/kbdcontrol/kbdcontrol.c --- a/usr.sbin/kbdcontrol/kbdcontrol.c +++ b/usr.sbin/kbdcontrol/kbdcontrol.c @@ -107,8 +107,8 @@ /* 93-96 */ "" , "" , "" , "" , }; -static const int delays[] = {250, 500, 750, 1000}; -static const int repeats[] = { 34, 38, 42, 46, 50, 55, 59, 63, +static const int delays[] = {200, 250, 500, 750, 1000}; +static const int repeats[] = {15, 34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504}; @@ -1059,12 +1059,15 @@ if (!strcmp(opt, "slow")) { delay = 1000, repeat = 500; - d = 3, r = 31; + d = 4, r = 32; } else if (!strcmp(opt, "normal")) { - delay = 500, repeat = 125; - d = 1, r = 15; + delay = 500, repeat = 126; + d = 2, r = 16; } else if (!strcmp(opt, "fast")) { - delay = repeat = 0; + delay = 250, repeat = 34; + d = r = 1; + } else if (!strcmp(opt, "ultra")) { + delay = 200, repeat = 15; d = r = 0; } else { int n; @@ -1077,7 +1080,7 @@ repeat = strtol(opt, &v1, 0); if ((repeat < 0) || (*opt == '\0') || (*v1 != '\0')) { badopt: - warnx("argument to -r must be delay.repeat or slow|normal|fast"); + warnx("argument to -r must be delay.repeat or slow|normal|fast|ultra"); return; } for (n = 0; n < ndelays - 1; n++)