kern/57273: PATCH, fix usb keyboard repeat problem
| From: | plasma <plasma@freebsd.sinica.edu.tw> |
| Date: | Sat, 27 Sep 2003 15:42:43 +0800 (CST) |
| Subject: | PATCH, fix usb keyboard repeat problem |
| Send-pr version: | 3.113 |
| Number: | 57273 |
| Category: | kern |
| Synopsis: | PATCH, fix usb keyboard repeat problem |
| Severity: | serious |
| Priority: | medium |
| Responsible: | jhb@FreeBSD.org |
| State: | closed |
| Class: | sw-bug |
| Arrival-Date: | Sat Sep 27 00:50:19 PDT 2003 |
| Closed-Date: | Mon Mar 01 12:56:32 PST 2004 |
| Last-Modified: | Mon Mar 01 12:56:32 PST 2004 |
| Originator: | plasma |
| Release: | FreeBSD 4.9-PRERELEASE i386 |
System: FreeBSD freebsd.sinica.edu.tw 4.9-PRERELEASE FreeBSD 4.9-PRERELEASE #4: Mon Sep 15 18:44:48 CST 2003 root@freebsd.sinica.edu.tw:/usr/src/sys/compile/GENERIC i386
1. Plug a usb keyboard.
2. Do 'kbdcontrol -k /dev/kbd1 < /dev/console', activate the usb
keyboard.
3. Type. Make sure you type fast enough that one key is pressed
before the previous key is not released yet.
Apply the following patch:
|
Download patch-1.diff
|
--- /usr/src/sys/dev/usb/ukbd.c.orig Mon Mar 31 08:31:35 2003
+++ /usr/src/sys/dev/usb/ukbd.c Sat Sep 27 15:13:31 2003
@@ -732,10 +732,10 @@
for (i = 0; i < NKEYCODE; i++) {
key = state->ks_odata.keycode[i];
if (key == 0)
- break;
+ continue;
for (j = 0; j < NKEYCODE; j++) {
if (ud->keycode[j] == 0)
- break;
+ continue;
if (key == ud->keycode[j])
goto rfound;
}
@@ -748,11 +748,11 @@
for (i = 0; i < NKEYCODE; i++) {
key = ud->keycode[i];
if (key == 0)
- break;
+ continue;
state->ks_ntime[i] = now + kbd->kb_delay1;
for (j = 0; j < NKEYCODE; j++) {
if (state->ks_odata.keycode[j] == 0)
- break;
+ continue;
if (key == state->ks_odata.keycode[j]) {
state->ks_ntime[i] = state->ks_otime[j];
if (state->ks_otime[j] > now)
|
| Reply via E-mail |
| From: | David Gilbert <dgilbert@aci.ca> |
| Date: | Sat, 27 Sep 2003 17:33:08 -0400 |
This happens in -CURRENT as well.
|
| Reply via E-mail |
| From: | "Walter C. Pelissero" <walter@pelissero.de> |
| Date: | Tue, 30 Sep 2003 23:42:23 +0200 |
On 4.9-PRERELEASE the patch suggested by plasma@freebsd.sinica.edu.tw
does fix the problem.
--
walter pelissero
http://www.pelissero.de
|
| Responsible Changed |
| From-To: | freebsd-bugs->joe |
| By: | znerd |
| When: | Mon Jan 5 02:41:56 PST 2004 |
| Why: | Over to USB maintainer.
|
| State Changed |
| From-To: | open->patched |
| By: | jhb |
| When: | Mon Feb 23 07:37:19 PST 2004 |
| Why: | Fix committed to head and will be merged to 4.x in a week.
|
| Responsible Changed |
| From-To: | joe->jhb |
| By: | jhb |
| When: | Mon Feb 23 07:37:19 PST 2004 |
| Why: | Fix committed to head and will be merged to 4.x in a week.
|
| State Changed |
| From-To: | patched->closed |
| By: | jhb |
| When: | Mon Mar 1 12:56:20 PST 2004 |
| Why: | Fix merged to 4.x.
|