diff options
author | Cooper Yuan <cooperyuan@gmail.com> | 2009-03-13 11:47:43 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-03-13 11:47:43 -0400 |
commit | 104e13da74de37477e3a31a5de96c5ebb8fe888b (patch) | |
tree | 3944ccec3f344177afb16ee66356da8542970956 /src | |
parent | f70d7a0fd9ac3659d93511ab362eb80a7ff49777 (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.c | 7 |
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); |