summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorDaniel Vetter2012-07-26 19:21:47 +0200
committerDaniel Vetter2012-09-06 08:21:29 +0200
commita261b246ebd552fd5d5a8ed84cc931bb821c427f (patch)
tree4264fae93788af65075c207280f8555b8521548c /drivers/gpu/drm/i915/intel_display.c
parentdrm/i915: push commit_output_state past the crtc/encoder preparing (diff)
downloadkernel-qcow2-linux-a261b246ebd552fd5d5a8ed84cc931bb821c427f.tar.gz
kernel-qcow2-linux-a261b246ebd552fd5d5a8ed84cc931bb821c427f.tar.xz
kernel-qcow2-linux-a261b246ebd552fd5d5a8ed84cc931bb821c427f.zip
drm/i915: disable all crtcs at suspend time
We need this to avoid confusing the hw state readout code with the cpt pch plls at resume time: We'd read the new pipe state (which is disabled), but still believe that we have a life pll connected to that pipe (from before the suspend). Hence properly disable pipes to clear out all the residual state. This has the neat side-effect that we don't enable ports prematurely by restoring bogus state from the saved register values. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 2a393cbe6173..4c0ec180564f 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3545,6 +3545,16 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
}
}
+void intel_modeset_disable(struct drm_device *dev)
+{
+ struct drm_crtc *crtc;
+
+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
+ if (crtc->enabled)
+ intel_crtc_disable(crtc);
+ }
+}
+
void intel_encoder_noop(struct drm_encoder *encoder)
{
}