ref: a59e6750fb8e538d20a7fe4f18782d8e79ce8909
parent: 49302ef618b83a03f1a6b65fac77be7396cd5cb5
author: Sigrid <ftrvxmtrx@gmail.com>
date: Wed Apr 1 07:31:19 EDT 2020
devkbd: bits bad! revert repeat/delay, better patches welcome
--- a/sys/src/9/pc/devkbd.c
+++ b/sys/src/9/pc/devkbd.c
@@ -40,7 +40,6 @@
Qdir,
Qscancode,
Qleds,
- Qrepeat,
};
static Dirtab kbdtab[] = {@@ -47,7 +46,6 @@
".", {Qdir, 0, QTDIR}, 0, 0555, "scancode", {Qscancode, 0}, 0, 0440, "leds", {Qleds, 0}, 0, 0220,- "repeat", {Qrepeat, 0}, 0, 0220,};
static Lock i8042lock;
@@ -195,28 +193,6 @@
iunlock(&i8042lock);
}
-static void
-setrepeat(int repeat)
-{- if(nokbd)
- return;
-
- repeat &= 0x7f;
- ilock(&i8042lock);
- for(;;){- if(outready() < 0)
- break;
- outb(Data, 0xf3); /* `set typematic rate and delay' */
- if(outready() < 0)
- break;
- outb(Data, repeat);
- if(outready() < 0)
- break;
- break;
- }
- iunlock(&i8042lock);
-}
-
/*
* keyboard interrupt
*/
@@ -381,6 +357,9 @@
{char tmp[8+1], *p;
+ if(c->qid.path != Qleds)
+ error(Egreg);
+
p = tmp + n;
if(n >= sizeof(tmp))
p = tmp + sizeof(tmp)-1;
@@ -387,12 +366,7 @@
memmove(tmp, a, p - tmp);
*p = 0;
- if(c->qid.path == Qleds)
- setleds(atoi(tmp));
- else if(c->qid.path == Qrepeat)
- setrepeat(atoi(tmp));
- else
- error(Egreg);
+ setleds(atoi(tmp));
return n;
}
--
⑨