[ 27/71] drm/i915: Dont enable the cursor on a disable pipe
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2013-09-29 19:42:56
Also in:
lkml
3.11-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ville Syrjälä <redacted>
commit f2f5f771c5fc0fa252cde3d0d0452dcc785cc17a upstream.
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
Signed-off-by: Ville Syrjälä <redacted>
Tested-by: Paulo Zanoni <redacted>
Reviewed-by: Paulo Zanoni <redacted>
Signed-off-by: Daniel Vetter <redacted>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/i915/intel_display.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c@@ -6572,7 +6572,8 @@ static int intel_crtc_cursor_set(struct intel_crtc->cursor_width = width; intel_crtc->cursor_height = height; - intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); + if (intel_crtc->active) + intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); return 0; fail_unpin:
@@ -6591,7 +6592,8 @@ static int intel_crtc_cursor_move(struct intel_crtc->cursor_x = x; intel_crtc->cursor_y = y; - intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); + if (intel_crtc->active) + intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); return 0; }