| 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; |
| } |