[PATCH]: GART: Save/restore GART table consistently.

David Miller davem at davemloft.net
Sat Feb 14 01:01:31 PST 2009


Always save the GART table with the RADEON_SURFACE_CNTL register
zero'd out to make sure we always use the same endinanness.

Signed-off-by: David S. Miller <davem at davemloft.net>
---
 src/radeon_driver.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 813b25e..3fd5144 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -5511,8 +5511,13 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
     	if (info->cardType == CARD_PCIE &&
 	    info->dri->pKernelDRMVersion->version_minor >= 19 &&
 	    info->FbSecureSize) {
+	    unsigned char *RADEONMMIO = info->MMIO;
+	    unsigned int sctrl = INREG(RADEON_SURFACE_CNTL);
+
 	    /* we need to backup the PCIE GART TABLE from fb memory */
+	    OUTREG(RADEON_SURFACE_CNTL, 0);
 	    memcpy(info->FB + info->dri->pciGartOffset, info->dri->pciGartBackup, info->dri->pciGartSize);
+	    OUTREG(RADEON_SURFACE_CNTL, sctrl);
     	}
 
 	/* get the DRI back into shape after resume */
@@ -5562,8 +5567,13 @@ void RADEONLeaveVT(int scrnIndex, int flags)
         if (info->cardType == CARD_PCIE &&
 	    info->dri->pKernelDRMVersion->version_minor >= 19 &&
 	    info->FbSecureSize) {
+	    unsigned char *RADEONMMIO = info->MMIO;
+	    unsigned int sctrl = INREG(RADEON_SURFACE_CNTL);
+
             /* we need to backup the PCIE GART TABLE from fb memory */
+	    OUTREG(RADEON_SURFACE_CNTL, 0);
             memcpy(info->dri->pciGartBackup, (info->FB + info->dri->pciGartOffset), info->dri->pciGartSize);
+	    OUTREG(RADEON_SURFACE_CNTL, sctrl);
         }
 
 	/* Make sure 3D clients will re-upload textures to video RAM */
-- 
1.6.1.2.350.g88cc



More information about the xorg-driver-ati mailing list