aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-02-04 17:17:47 -0500
committerEric Anholt <eric@anholt.net>2010-02-22 11:46:57 -0500
commit357b13c3e498bb658f511f91a9e4f09c9553be6e (patch)
tree18cc3daafc7bf20d92fbc85a942197b43e0ac98f /drivers/gpu
parent060e645ac0181f499478a7be0ccb8a5600edc71a (diff)
drm/i915: fix drps disable so unload & re-load works
At unload time, we need to disable DRPS, but we need to do it correctly or the GPU will hang and we won't be able to load the module again. So set the SFCAVM bit so we can properly restore the DRPS config at unload. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index cba51c2b512f..e879885f4754 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4699,7 +4699,7 @@ void ironlake_disable_drps(struct drm_device *dev)
4699 fstart = (I915_READ(MEMMODECTL) & MEMMODE_FSTART_MASK) >> 4699 fstart = (I915_READ(MEMMODECTL) & MEMMODE_FSTART_MASK) >>
4700 MEMMODE_FSTART_SHIFT; 4700 MEMMODE_FSTART_SHIFT;
4701 rgvswctl = (MEMCTL_CMD_CHFREQ << MEMCTL_CMD_SHIFT) | 4701 rgvswctl = (MEMCTL_CMD_CHFREQ << MEMCTL_CMD_SHIFT) |
4702 (fstart << MEMCTL_FREQ_SHIFT); 4702 (fstart << MEMCTL_FREQ_SHIFT) | MEMCTL_SFCAVM;
4703 I915_WRITE(MEMSWCTL, rgvswctl); 4703 I915_WRITE(MEMSWCTL, rgvswctl);
4704 msleep(1); 4704 msleep(1);
4705 rgvswctl |= MEMCTL_CMD_STS; 4705 rgvswctl |= MEMCTL_CMD_STS;