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:
Rene Gollent 2008-04-04 15:12:11 +00:00
parent 7686d00c6f
commit 0d69c8378f

View File

@ -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;