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:
@@ -27,7 +27,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
//#define TRACE_VIDEO
|
#define TRACE_VIDEO
|
||||||
#ifdef TRACE_VIDEO
|
#ifdef TRACE_VIDEO
|
||||||
# define TRACE(x) dprintf x
|
# define TRACE(x) dprintf x
|
||||||
#else
|
#else
|
||||||
@@ -809,7 +809,11 @@ platform_switch_to_logo(void)
|
|||||||
if (sVesaCompatible && sMode != NULL) {
|
if (sVesaCompatible && sMode != NULL) {
|
||||||
if (!sModeChosen)
|
if (!sModeChosen)
|
||||||
get_mode_from_settings();
|
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)
|
if (vesa_set_mode(sMode->mode) != B_OK)
|
||||||
goto fallback;
|
goto fallback;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user