xf86-video-ati: Branch 'randr-1.2' - 4 commits

Alex Deucher agd5f at kemper.freedesktop.org
Thu May 17 21:13:12 PDT 2007


 src/radeon_bios.c    |   25 -------------------------
 src/radeon_display.c |    2 +-
 src/radeon_driver.c  |   17 +++--------------
 src/radeon_output.c  |   33 ++++-----------------------------
 4 files changed, 8 insertions(+), 69 deletions(-)

New commits:
diff-tree f71bfde7352ef858c1041037d7dc77c237e315a4 (from f711e266d6927dec648f6ff26f15c6f48643f78c)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Fri May 18 00:12:03 2007 -0400

    RADEON: more cleanup

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index b2d28a5..91bb7b1 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -5458,19 +5458,6 @@ Bool RADEONInitCrtcRegisters(xf86CrtcPtr
     save->fp_crtc_h_total_disp = save->crtc_h_total_disp;
     save->fp_crtc_v_total_disp = save->crtc_v_total_disp;
 
-#if 0
-    /* Set following registers for all cases first, if a DFP/LCD is connected on
-       internal TMDS/LVDS port, they will be set by RADEONInitFPRegister
-    */
-    if (!info->IsSwitching) {
-	save->fp_gen_cntl = 0;
-	save->fp_vert_stretch = info->SavedReg.fp_vert_stretch &
-				  RADEON_VERT_STRETCH_RESERVED;
-	save->fp_horz_stretch = info->SavedReg.fp_horz_stretch &
-				  (RADEON_HORZ_FP_LOOP_STRETCH |
-				  RADEON_HORZ_AUTO_RATIO_INC);
-    }
-#endif
 
     /* get the output connected to this CRTC */
     for (i = 0; i < xf86_config->num_output; i++) {
diff-tree f711e266d6927dec648f6ff26f15c6f48643f78c (from bfc1c372d7475b7fa6bffb8a79dec1dc2f11ec59)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Thu May 17 23:59:07 2007 -0400

    RADEON: turn off all outputs in screeninit().  We'll turn on the ones we want later

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index ba736ca..b2d28a5 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -3307,6 +3307,8 @@ Bool RADEONScreenInit(int scrnIndex, Scr
 
     RADEONSave(pScrn);
 
+    RADEONDisableDisplays(pScrn);
+
     if (info->IsMobility) {
         if (xf86ReturnOptValBool(info->Options, OPTION_DYNAMIC_CLOCKS, FALSE)) {
 	    RADEONSetDynamicClock(pScrn, 1);
diff-tree bfc1c372d7475b7fa6bffb8a79dec1dc2f11ec59 (from c60b3bc9e3e7463bdb42e2478be8cc3f22c63c68)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Thu May 17 23:45:29 2007 -0400

    RADEON: More cleanup

diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index f63eec7..25cd1a8 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -272,31 +272,6 @@ Bool RADEONGetConnectorInfoFromBIOS (Scr
 	}
 
 	if (info->IsMobility) {
-#if 0
-	    /* For the cases where only one VGA connector is found, 
-	       we assume LVDS is not listed in the connector table, 
-	       add it in here as the first port.
-	    */
-	    if ((connector_found < 3) && (info->BiosConnector[tmp1]->ConnectorType == CONNECTOR_CRT)) {
-		if (connector_found == 1) {
-		    memcpy (&info->BiosConnector[1], &info->BiosConnector[0], 
-			    sizeof (info->BiosConnector));
-		}
-		info->BiosConnector[0].DACType = DAC_TVDAC;
-		info->BiosConnector[0].TMDSType = TMDS_UNKNOWN;
-		info->BiosConnector[0].DDCType = DDC_NONE_DETECTED;
-		info->BiosConnector[0].ConnectorType = CONNECTOR_PROPRIETARY;
-
-		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "LVDS port is not in connector table, added in.\n");
-		if (connector_found == 0) connector_found = 1;
-		else connector_found = 3;
-	    }
-
-	    /* some bioses seem to list the LVDS port as DVI hack around that here */
-	    if (info->BiosConnector[0].ConnectorType == CONNECTOR_DVI_D) {
-		info->BiosConnector[0].ConnectorType = CONNECTOR_PROPRIETARY;
-	    }
-#endif
 	    if ((tmp = RADEON_BIOS16(info->ROMHeaderStart + 0x42))) {
 	        if ((tmp0 = RADEON_BIOS16(tmp + 0x15))) {
 		    if ((tmp1 = RADEON_BIOS8(tmp0+2) & 0x07)) {	    
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index d561fa0..ba736ca 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1661,7 +1661,7 @@ static Bool RADEONPreInitChipType(ScrnIn
     case PCI_CHIP_RS482_5974:
 	info->ChipFamily = CHIP_FAMILY_RS400;
 	info->IsIGP = TRUE;
-	/*info->HasSingleDAC = TRUE;*/ /* ??? */
+	info->HasSingleDAC = TRUE; /* ??? */
         break;
 
     case PCI_CHIP_RV410_564A:
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 3052c36..924c3e0 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -181,17 +181,6 @@ void RADEONConnectorFindMonitor(ScrnInfo
     }
 }
 
-static void RADEONSwapOutputs(ScrnInfoPtr pScrn)
-{
-    RADEONInfoPtr info       = RADEONPTR(pScrn);
-    RADEONBIOSConnector tmp;
-    
-    tmp = info->BiosConnector[0];
-    info->BiosConnector[0] = info->BiosConnector[1];
-    info->BiosConnector[1] = tmp;
-    
-}
-
 static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr output)
 {
     RADEONInfoPtr info       = RADEONPTR(pScrn);
@@ -524,29 +513,14 @@ Bool RADEONSetupConnectors(ScrnInfoPtr p
         }
     }
 
-    /* always make TMDS_INT port first*/
-    if (info->BiosConnector[1].TMDSType == TMDS_INT) {
-	RADEONSwapOutputs(pScrn);
-    } else if ((info->BiosConnector[0].TMDSType != TMDS_INT &&
-                info->BiosConnector[1].TMDSType != TMDS_INT)) {
-        /* no TMDS_INT port, make primary DAC port first */
-	/* On my Inspiron 8600 both internal and external ports are
-	   marked DAC_PRIMARY in BIOS. So be extra careful - only
-	   swap when the first port is not DAC_PRIMARY */
-        if ((!(info->BiosConnector[0].ConnectorType == CONNECTOR_PROPRIETARY)) &&  (info->BiosConnector[1].DACType == DAC_PRIMARY) &&
-	     (info->BiosConnector[0].DACType != DAC_PRIMARY)) {
-	    RADEONSwapOutputs(pScrn);
-        }
-    }
-
     if (info->HasSingleDAC) {
         /* For RS300/RS350/RS400 chips, there is no primary DAC. Force VGA port to use TVDAC*/
         if (info->BiosConnector[0].ConnectorType == CONNECTOR_CRT) {
             info->BiosConnector[0].DACType = DAC_TVDAC;
-            info->BiosConnector[1].DACType = DAC_PRIMARY;
+            info->BiosConnector[1].DACType = DAC_NONE;
         } else {
             info->BiosConnector[1].DACType = DAC_TVDAC;
-            info->BiosConnector[0].DACType = DAC_PRIMARY;
+            info->BiosConnector[0].DACType = DAC_NONE;
         }
     } else if (!pRADEONEnt->HasCRTC2) {
         info->BiosConnector[0].DACType = DAC_PRIMARY;
@@ -563,7 +537,8 @@ Bool RADEONSetupConnectors(ScrnInfoPtr p
 		   &info->BiosConnector[1].DACType,
 		   &info->BiosConnector[1].TMDSType,
 		   &info->BiosConnector[1].ConnectorType) != 8) {
-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Invalid ConnectorTable option: %s\n", optstr);
+	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid ConnectorTable option: %s\n", optstr);
+	    return FALSE;
 	}
     }
 
diff-tree c60b3bc9e3e7463bdb42e2478be8cc3f22c63c68 (from 11289f8206cab1a94bd64a3938cf9af50f19497e)
Author: Paul TBBle Hampson <Paul.Hampson at pobox.com>
Date:   Thu May 17 23:26:54 2007 -0400

    Fix for infinite loop in RADEONGetLVDSInfo

diff --git a/src/radeon_display.c b/src/radeon_display.c
index f0a24ab..76affcb 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -790,8 +790,8 @@ Bool RADEONGetLVDSInfo (xf86OutputPtr ou
 		    radeon_output->Flags = 0;
 		    break;
 		}
-		tmp_mode = tmp_mode->next;
 	    }
+	    tmp_mode = tmp_mode->next;
 	}
 	if ((radeon_output->DotClock == 0) && !output->MonInfo) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,


More information about the xorg-commit mailing list