summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/vgavesa.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-08-01 22:56:58 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-08-01 22:56:58 +0200
commit9caf93faa8f37f6c744a609f55ca6e211359c806 (patch)
tree17552d62f097a3d588e700336f9a69e899bd6bfd /sys/src/9/pc/vgavesa.c
parent02acb1d4f00648b3ececd8fee2dc065f868e432e (diff)
vesa: timeout blank/unblank operation if it gets stuck
Diffstat (limited to 'sys/src/9/pc/vgavesa.c')
-rw-r--r--sys/src/9/pc/vgavesa.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/src/9/pc/vgavesa.c b/sys/src/9/pc/vgavesa.c
index 98cd84dde..ea1f26ad3 100644
--- a/sys/src/9/pc/vgavesa.c
+++ b/sys/src/9/pc/vgavesa.c
@@ -180,10 +180,19 @@ vesaproc(void*)
u.bx = 0x0101;
else
u.bx = 0x0001;
+
+ /*
+ * dont wait forever here. some BIOS get stuck
+ * in i/o poll loop after blank/unblank for some
+ * reason. (Thinkpad A22p)
+ */
+ procalarm(10000);
vbecall(&u);
poperror();
}
+ procalarm(0);
+ up->notepending = 0;
}
cclose(cmem);
cclose(creg);