diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-01 22:56:58 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-01 22:56:58 +0200 |
commit | 9caf93faa8f37f6c744a609f55ca6e211359c806 (patch) | |
tree | 17552d62f097a3d588e700336f9a69e899bd6bfd /sys/src/9/pc/vgavesa.c | |
parent | 02acb1d4f00648b3ececd8fee2dc065f868e432e (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.c | 9 |
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); |