diff options
| -rw-r--r-- | sys/src/9/pc/mouse.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/src/9/pc/mouse.c b/sys/src/9/pc/mouse.c index 5113f8899..0519e5e76 100644 --- a/sys/src/9/pc/mouse.c +++ b/sys/src/9/pc/mouse.c @@ -260,9 +260,19 @@ resetmouse(void) 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; } } |
