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