xf86-video-intel: src/i830_sdvo.c src/i830_sdvo_regs.h

Alan Hourihane alanh at kemper.freedesktop.org
Tue Apr 17 18:30:18 EEST 2007


 src/i830_sdvo.c      |   13 ++++++++++---
 src/i830_sdvo_regs.h |    6 +++++-
 2 files changed, 15 insertions(+), 4 deletions(-)

New commits:
diff-tree ac9181c014638dbeb334b40b4029d0ccb2b7a0fc (from ab5bdee8a62c842ae32aaef57eb841ebcb644d2b)
Author: Alan Hourihane <alanh at fairlite.demon.co.uk>
Date:   Tue Apr 17 16:30:17 2007 +0100

    Check for the PENDING message when reading the attached
    displays. Ensures the command has completed before continuing.
    
    (probably need to check PENDING in other SDVO calls too)

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index f0723a9..cf72848 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -1074,12 +1074,19 @@ i830_sdvo_detect(xf86OutputPtr output)
 {
     CARD8 response[2];
     CARD8 status;
+    CARD8 retry = 50;
 
     i830_sdvo_write_cmd(output, SDVO_CMD_GET_ATTACHED_DISPLAYS, NULL, 0);
-    status = i830_sdvo_read_response(output, &response, 2);
 
-    if (status != SDVO_CMD_STATUS_SUCCESS)
-	return XF86OutputStatusUnknown;
+    while (retry--) {
+    	status = i830_sdvo_read_response(output, &response, 2);
+
+	if (status == SDVO_CMD_STATUS_SUCCESS)
+	    break;
+    
+    	if (status != SDVO_CMD_STATUS_PENDING)
+	    return XF86OutputStatusUnknown;
+    }
 
     if (response[0] != 0 || response[1] != 0)
 	return XF86OutputStatusConnected;
diff --git a/src/i830_sdvo_regs.h b/src/i830_sdvo_regs.h
index 437ff50..72e58a0 100644
--- a/src/i830_sdvo_regs.h
+++ b/src/i830_sdvo_regs.h
@@ -38,7 +38,11 @@
 #define SDVO_OUTPUT_SCART0  (1 << 5)
 #define SDVO_OUTPUT_LVDS0   (1 << 6)
 #define SDVO_OUTPUT_TMDS1   (1 << 8)
-#define SDVO_OUTPUT_RGB1    (1 << 13)
+#define SDVO_OUTPUT_RGB1    (1 << 9)
+#define SDVO_OUTPUT_CVBS1   (1 << 10)
+#define SDVO_OUTPUT_SVID1   (1 << 11)
+#define SDVO_OUTPUT_YPRPB1  (1 << 12)
+#define SDVO_OUTPUT_SCART1  (1 << 13)
 #define SDVO_OUTPUT_LVDS1   (1 << 14)
 #define SDVO_OUTPUT_LAST    (14)
 



More information about the xorg-commit mailing list