summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCooper Yuan <cooperyuan@gmail.com>2009-03-13 11:47:43 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-03-13 11:47:43 -0400
commit104e13da74de37477e3a31a5de96c5ebb8fe888b (patch)
tree3944ccec3f344177afb16ee66356da8542970956 /src
parentf70d7a0fd9ac3659d93511ab362eb80a7ff49777 (diff)
radeon: save bios scratch registers in Preinit()
The display detect routines can change these which causes havok with some bioses.
Diffstat (limited to 'src')
-rw-r--r--src/radeon_driver.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index c0f5e7bf..47a40abf 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -122,6 +122,9 @@ static void RADEONSetDynamicClock(ScrnInfoPtr pScrn, int mode);
static void RADEONForceSomeClocks(ScrnInfoPtr pScrn);
static void RADEONSaveMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save);
+static void
+RADEONSaveBIOSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save);
+
#ifdef XF86DRI
static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save);
#endif
@@ -2916,6 +2919,9 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
if (!RADEONPreInitBIOS(pScrn, pInt10))
goto fail;
+ /* Save BIOS scratch registers */
+ RADEONSaveBIOSRegisters(pScrn, info->SavedReg);
+
#ifdef XF86DRI
/* PreInit DRI first of all since we need that for getting a proper
* memory map
@@ -5138,7 +5144,6 @@ static void RADEONSave(ScrnInfoPtr pScrn)
RADEONSaveTVRegisters(pScrn, save);
}
- RADEONSaveBIOSRegisters(pScrn, save);
if (info->ChipFamily < CHIP_FAMILY_R600)
RADEONSaveSurfaces(pScrn, save);