| From f2f5f771c5fc0fa252cde3d0d0452dcc785cc17a Mon Sep 17 00:00:00 2001 | 
 | From: Ville Syrjälä <ville.syrjala@linux.intel.com> | 
 | Date: Tue, 17 Sep 2013 18:33:44 +0300 | 
 | Subject: drm/i915: Don't enable the cursor on a disable pipe | 
 |  | 
 | From: Ville Syrjälä <ville.syrjala@linux.intel.com> | 
 |  | 
 | 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ä <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> | 
 | 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; | 
 |  } |