Module Name:    xsrc
Committed By:   macallan
Date:           Wed Jun 29 04:11:31 UTC 2011

Modified Files:
        xsrc/external/mit/xf86-video-r128/dist/src: r128_driver.c

Log Message:
use ioctl(WSDISPLAYIO_GET_EDID)


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
    xsrc/external/mit/xf86-video-r128/dist/src/r128_driver.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xf86-video-r128/dist/src/r128_driver.c
diff -u xsrc/external/mit/xf86-video-r128/dist/src/r128_driver.c:1.5 xsrc/external/mit/xf86-video-r128/dist/src/r128_driver.c:1.6
--- xsrc/external/mit/xf86-video-r128/dist/src/r128_driver.c:1.5	Sun May 15 23:44:47 2011
+++ xsrc/external/mit/xf86-video-r128/dist/src/r128_driver.c	Wed Jun 29 04:11:31 2011
@@ -1395,6 +1395,10 @@
     return TRUE;
 }
 
+/* XXX
+ * the following comment is bogus - the code scans the main monitor port,
+ * not R128_GPIO_MONIDB
+ */
 /* return TRUE is a DFP is indeed connected to a DVI port */
 static Bool R128GetDFPInfo(ScrnInfoPtr pScrn)
 {
@@ -1416,6 +1420,22 @@
            & ~(CARD32)(R128_GPIO_MONID_A_0 | R128_GPIO_MONID_A_3));
 
     MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, info->pI2CBus);
+#ifdef __NetBSD__
+    {
+    	struct wsdisplayio_edid_info ei;
+    	char buffer[1024];
+    	int i, j;
+
+	ei.edid_data = buffer;
+	ei.buffer_size = 1024;
+	if (ioctl(xf86Info.screenFd, WSDISPLAYIO_GET_EDID, &ei) != -1) {
+	    xf86Msg(X_INFO, "got %d bytes worth of EDID from wsdisplay\n", ei.data_size);
+	    MonInfo = xf86InterpretEDID(pScrn->scrnIndex, buffer);
+	} else
+	    xf86Msg(X_INFO, "ioctl failed %d\n", errno);
+    }
+#endif
+		
     if(!MonInfo) {
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                    "No DFP detected\n");

Reply via email to