summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2009-02-26 14:33:52 -0500
committerAdam Jackson <ajax@redhat.com>2009-02-26 14:33:52 -0500
commit69b3eb4f8a9b93f1b2a73e395d4d7c29c6c18b41 (patch)
tree5b0b004f72db4ac34cb4c24142c443a4cded4181
parent68ca3d10ab33ee2347928b0340198aff4f620144 (diff)
Attempt VBE PanelID if DDC fails
-rw-r--r--configure.ac8
-rw-r--r--src/vesa.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 090be35..674e985 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,6 +66,14 @@ CFLAGS="$save_CFLAGS"
save_CFLAGS="$CFLAGS"
CFLAGS="$XORG_CFLAGS"
+AC_CHECK_DECL(VBEReadPanelID,
+ [AC_DEFINE(HAVE_PANELID, 1, [Have VBE PanelID call])],
+ [],
+ [#include "vbe.h"])
+CFLAGS="$save_CFLAGS"
+
+save_CFLAGS="$CFLAGS"
+CFLAGS="$XORG_CFLAGS"
AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
[XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no],
[#include "xorg-server.h"])
diff --git a/src/vesa.c b/src/vesa.c
index aee5018..377736b 100644
--- a/src/vesa.c
+++ b/src/vesa.c
@@ -671,6 +671,13 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags)
if ((pScrn->monitor->DDC = pVesa->monitor) != NULL)
xf86SetDDCproperties(pScrn, pVesa->monitor);
+#ifdef HAVE_PANELID
+ else {
+ void *panelid = VBEReadPanelID(pVesa->pVbe);
+ VBEInterpretPanelID(pScrn->scrnIndex, panelid);
+ xfree(panelid);
+ }
+#endif
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, DEBUG_VERB,
"Searching for matching VESA mode(s):\n");