[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