xf86-video-ati: Branch 'master'

Dave Airlie airlied at kemper.freedesktop.org
Tue May 27 13:50:35 PDT 2008


 src/radeon_driver.c |   30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

New commits:
commit edce33e87fb79a540d8c285f205d4c3f2c2bc9f4
Author: Dave Airlie <airlied at redhat.com>
Date:   Wed May 28 06:43:40 2008 +1000

    radeon: fix surface access on avivo chips.
    
    This should fix VT switch on vesafb

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 7124b11..733e9c6 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -3224,9 +3224,11 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
 #endif
 
     /* Initial setup of surfaces */
-    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-                   "Setting up initial surfaces\n");
-    RADEONChangeSurfaces(pScrn);
+    if (info->ChipFamily < CHIP_FAMILY_R600) {
+        xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+                       "Setting up initial surfaces\n");
+        RADEONChangeSurfaces(pScrn);
+    }
 
 				/* Memory manager setup */
 
@@ -3457,10 +3459,12 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
 #endif
 
     /* Make sure surfaces are allright since DRI setup may have changed them */
-    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-                   "Setting up final surfaces\n");
+    if (info->ChipFamily < CHIP_FAMILY_R600) {
+        xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+                       "Setting up final surfaces\n");
 
-    RADEONChangeSurfaces(pScrn);
+        RADEONChangeSurfaces(pScrn);
+    }
 
 
     /* Enable aceleration */
@@ -4037,7 +4041,8 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
     }
 
     /* Update surface images */
-    RADEONSaveSurfaces(pScrn, info->ModeReg);
+    if (info->ChipFamily < CHIP_FAMILY_R600)
+        RADEONSaveSurfaces(pScrn, info->ModeReg);
 }
 
 /* Read memory map */
@@ -4808,7 +4813,8 @@ static void RADEONSave(ScrnInfoPtr pScrn)
     }
 
     RADEONSaveBIOSRegisters(pScrn, save);
-    RADEONSaveSurfaces(pScrn, save);
+    if (info->ChipFamily < CHIP_FAMILY_R600)
+        RADEONSaveSurfaces(pScrn, save);
 
 }
 
@@ -4864,9 +4870,9 @@ static void RADEONRestore(ScrnInfoPtr pScrn)
 	}
 
 	RADEONRestoreBIOSRegisters(pScrn, restore);
-	RADEONRestoreSurfaces(pScrn, restore);
     }
 
+
 #if 1
     /* Temp fix to "solve" VT switch problems.  When switching VTs on
      * some systems, the console can either hang or the fonts can be
@@ -4876,6 +4882,9 @@ static void RADEONRestore(ScrnInfoPtr pScrn)
     usleep(100000);
 #endif
 
+    if (info->ChipFamily < CHIP_FAMILY_R600)
+	RADEONRestoreSurfaces(pScrn, restore);
+
     /* need to make sure we don't enable a crtc by accident or we may get a hang */
     if (pRADEONEnt->HasCRTC2 && !info->IsSecondary) {
 	if (info->crtc2_on && xf86_config->num_crtc > 1) {
@@ -5275,7 +5284,8 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
     if (!xf86SetDesiredModes(pScrn))
 	return FALSE;
 
-    RADEONRestoreSurfaces(pScrn, info->ModeReg);
+    if (info->ChipFamily < CHIP_FAMILY_R600)
+        RADEONRestoreSurfaces(pScrn, info->ModeReg);
 #ifdef XF86DRI
     if (info->directRenderingEnabled) {
     	if (info->cardType == CARD_PCIE &&


More information about the xorg-commit mailing list