aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2013-09-17 11:33:44 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-09-18 04:00:30 -0400
commitf2f5f771c5fc0fa252cde3d0d0452dcc785cc17a (patch)
treec1cda56aef83009dbb461a4edc1fcf6f541c5c67 /drivers/gpu/drm
parentcc173961a68034c1171a421f0dbed39edfb60880 (diff)
drm/i915: Don't enable the cursor on a disable pipe
On HSW enabling a plane on a disabled pipe may hang the entire system. And there's no good reason for doing it ever, so just don't. v2: Move the crtc active checks to intel_crtc_cursor_{set,move} to avoid confusing people during modeset Cc: stable@vger.kernel.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index a38056d68dd8..d8a1d98693e7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -6929,7 +6929,8 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
6929 intel_crtc->cursor_width = width; 6929 intel_crtc->cursor_width = width;
6930 intel_crtc->cursor_height = height; 6930 intel_crtc->cursor_height = height;
6931 6931
6932 intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); 6932 if (intel_crtc->active)
6933 intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL);
6933 6934
6934 return 0; 6935 return 0;
6935fail_unpin: 6936fail_unpin:
@@ -6948,7 +6949,8 @@ static int intel_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
6948 intel_crtc->cursor_x = x; 6949 intel_crtc->cursor_x = x;
6949 intel_crtc->cursor_y = y; 6950 intel_crtc->cursor_y = y;
6950 6951
6951 intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); 6952 if (intel_crtc->active)
6953 intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL);
6952 6954
6953 return 0; 6955 return 0;
6954} 6956}