diff options
author | Alex Deucher <alex@botch2.(none)> | 2008-02-19 20:11:19 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2008-02-19 20:11:19 -0500 |
commit | a0a73208a21546ac120fb9a463261836c9ea7b55 (patch) | |
tree | e0ef2750117e53f322ebd0e6b0c065d8b5c0fab5 | |
parent | b77e2aff7453a9f370beba37ca3c25b92b3f97ff (diff) |
RADEON: restore clock gating and CP clock errata on VT switch
This may help people with hangs on resume
-rw-r--r-- | src/radeon_driver.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 9c5fce6..abf7d5c 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -4906,6 +4906,17 @@ Bool RADEONEnterVT(int scrnIndex, int flags) /* Makes sure the engine is idle before doing anything */ RADEONWaitForIdleMMIO(pScrn); + if (info->IsMobility && !IS_AVIVO_VARIANT) { + if (xf86ReturnOptValBool(info->Options, OPTION_DYNAMIC_CLOCKS, FALSE)) { + RADEONSetDynamicClock(pScrn, 1); + } else { + RADEONSetDynamicClock(pScrn, 0); + } + } + + if (IS_R300_VARIANT || IS_RV100_VARIANT) + RADEONForceSomeClocks(pScrn); + pScrn->vtSema = TRUE; for (i = 0; i < xf86_config->num_crtc; i++) { xf86CrtcPtr crtc = xf86_config->crtc[i]; |