ref: 4756cf549a8b0e9a6924713666770045b13dd8b8
parent: d3512f60df5d7a2ea5c4cad3cdef797f1f95a182
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;
}