summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2008-02-19 20:11:19 -0500
committerAlex Deucher <alex@botch2.(none)>2008-02-19 20:11:19 -0500
commita0a73208a21546ac120fb9a463261836c9ea7b55 (patch)
treee0ef2750117e53f322ebd0e6b0c065d8b5c0fab5
parentb77e2aff7453a9f370beba37ca3c25b92b3f97ff (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.c11
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];