diff options
| author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2013-09-17 11:33:44 -0400 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-09-18 04:00:30 -0400 |
| commit | f2f5f771c5fc0fa252cde3d0d0452dcc785cc17a (patch) | |
| tree | c1cda56aef83009dbb461a4edc1fcf6f541c5c67 | |
| parent | cc173961a68034c1171a421f0dbed39edfb60880 (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>
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 6 |
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; |
| 6935 | fail_unpin: | 6936 | fail_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 | } |
