ef56a4
diff -up xf86-video-ati-6.7.196/src/radeon_output.c.jx xf86-video-ati-6.7.196/src/radeon_output.c
ef56a4
--- xf86-video-ati-6.7.196/src/radeon_output.c.jx	2007-11-14 15:21:22.000000000 -0500
ef56a4
+++ xf86-video-ati-6.7.196/src/radeon_output.c	2007-11-14 15:22:39.000000000 -0500
ef56a4
@@ -278,62 +278,7 @@ RADEONDisplayDDCConnected(ScrnInfoPtr pS
bd9423
     DDCReg = radeon_output->DDCReg;
bd9423
 
bd9423
     /* Read and output monitor info using DDC2 over I2C bus */
bd9423
-    if (radeon_output->pI2CBus && info->ddc2 && (DDCReg != RADEON_LCD_GPIO_MASK) && (DDCReg != RADEON_MDGPIO_EN_REG)) {
bd9423
-	OUTREG(DDCReg, INREG(DDCReg) &
bd9423
-	       (CARD32)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1));
bd9423
-
bd9423
-	/* For some old monitors (like Compaq Presario FP500), we need
bd9423
-	 * following process to initialize/stop DDC
bd9423
-	 */
bd9423
-	OUTREG(DDCReg, INREG(DDCReg) & ~(RADEON_GPIO_EN_1));
bd9423
-	for (j = 0; j < 3; j++) {
bd9423
-	    OUTREG(DDCReg,
bd9423
-		   INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
bd9423
-	    usleep(13000);
bd9423
-
bd9423
-	    OUTREG(DDCReg,
bd9423
-		   INREG(DDCReg) & ~(RADEON_GPIO_EN_1));
bd9423
-	    for (i = 0; i < 10; i++) {
bd9423
-		usleep(15000);
bd9423
-		if (INREG(DDCReg) & RADEON_GPIO_Y_1)
bd9423
-		    break;
bd9423
-	    }
bd9423
-	    if (i == 10) continue;
bd9423
-
bd9423
-	    usleep(15000);
bd9423
-
bd9423
-	    OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
bd9423
-	    usleep(15000);
bd9423
-
bd9423
-	    OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
bd9423
-	    usleep(15000);
bd9423
-	    OUTREG(DDCReg,
bd9423
-		   INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
bd9423
-	    usleep(15000);
ef56a4
-
692eff
-	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
bd9423
-
bd9423
-	    OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
bd9423
-	    OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
bd9423
-	    usleep(15000);
bd9423
-	    OUTREG(DDCReg,
bd9423
-		   INREG(DDCReg) & ~(RADEON_GPIO_EN_1));
bd9423
-	    for (i = 0; i < 5; i++) {
bd9423
-		usleep(15000);
bd9423
-		if (INREG(DDCReg) & RADEON_GPIO_Y_1)
bd9423
-		    break;
bd9423
-	    }
bd9423
-	    usleep(15000);
bd9423
-	    OUTREG(DDCReg,
bd9423
-		   INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
bd9423
-	    usleep(15000);
bd9423
-
bd9423
-	    OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
bd9423
-	    OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
bd9423
-	    usleep(15000);
ef56a4
-	    if (MonInfo)  break;
bd9423
-	}
bd9423
-    } else if (radeon_output->pI2CBus && info->ddc2 && ((DDCReg == RADEON_LCD_GPIO_MASK) || (DDCReg == RADEON_MDGPIO_EN_REG))) {
bd9423
+    if (radeon_output->pI2CBus && info->ddc2) {
692eff
	MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
bd9423
     } else {
bd9423
 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "DDC2/I2C is not properly initialized\n");