On my system's BIOS / monitor there seems to be a race condition between grabbing the EDID info
and setting the video mode. The result of this is a garbage display every other boot. By introducing a small wait before doing the mode set, it works every time. Will see if I can reduce the spin timer though with some more tests. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24794 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
7686d00c6f
commit
0d69c8378f
@ -27,7 +27,7 @@
|
||||
#include <string.h>
|
||||
|
||||
|
||||
//#define TRACE_VIDEO
|
||||
#define TRACE_VIDEO
|
||||
#ifdef TRACE_VIDEO
|
||||
# define TRACE(x) dprintf x
|
||||
#else
|
||||
@ -809,7 +809,11 @@ platform_switch_to_logo(void)
|
||||
if (sVesaCompatible && sMode != NULL) {
|
||||
if (!sModeChosen)
|
||||
get_mode_from_settings();
|
||||
|
||||
|
||||
// On some BIOS / chipset / monitor combinations, there seems to be a timing issue between
|
||||
// getting the EDID data and setting the video mode. As such we wait here briefly to give
|
||||
// everything enough time to settle.
|
||||
spin(1000);
|
||||
if (vesa_set_mode(sMode->mode) != B_OK)
|
||||
goto fallback;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user