ref: d1be5e163c98c99b3b610dc5f4715455d506ba22
parent: e56affb840a369ccca365ce6f0c83a55b99224bc
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Jan 2 06:07:06 EST 2014
ps2mouse: retry disable packet streaming command 0xf5 disabling mouse packet streaming command 0xf5 can fail when a packet is currently transmitted. this can be seen when one moves the mouse while running: while(){echo accelerated >/dev/mousectl; sleep 0.5}
--- a/sys/src/9/pc/mouse.c
+++ b/sys/src/9/pc/mouse.c
@@ -260,9 +260,19 @@
static void
setstream(int on)
{
+ int i;
+
switch(mousetype){
case MousePS2:
- i8042auxcmd(on ? 0xF4 : 0xF5);
+ /*
+ * disabling streaming can fail when
+ * a packet is currently transmitted.
+ */
+ for(i=0; i<4; i++){
+ if(i8042auxcmd(on ? 0xF4 : 0xF5) != -1)
+ break;
+ delay(50);
+ }
break;
}
}
--
⑨