summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSigrid <ftrvxmtrx@gmail.com>2020-04-01 11:31:19 +0200
committerSigrid <ftrvxmtrx@gmail.com>2020-04-01 11:31:19 +0200
commit4756cf549a8b0e9a6924713666770045b13dd8b8 (patch)
treeb516fec5ea66ed8214037ad94fcaf78c6b618de3
parentd3512f60df5d7a2ea5c4cad3cdef797f1f95a182 (diff)
devkbd: bits bad! revert repeat/delay, better patches welcome
-rw-r--r--sys/src/9/pc/devkbd.c34
1 files changed, 4 insertions, 30 deletions
diff --git a/sys/src/9/pc/devkbd.c b/sys/src/9/pc/devkbd.c
index 5f6865ef1..5aeaded1f 100644
--- a/sys/src/9/pc/devkbd.c
+++ b/sys/src/9/pc/devkbd.c
@@ -40,14 +40,12 @@ enum {
Qdir,
Qscancode,
Qleds,
- Qrepeat,
};
static Dirtab kbdtab[] = {
".", {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 @@ setleds(int leds)
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,18 +357,16 @@ kbdwrite(Chan *c, void *a, long n, vlong)
{
char tmp[8+1], *p;
+ if(c->qid.path != Qleds)
+ error(Egreg);
+
p = tmp + n;
if(n >= sizeof(tmp))
p = tmp + sizeof(tmp)-1;
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;
}