diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 13bc6d44293a..69e158789365 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -13728,6 +13728,7 @@ intel_check_cursor_plane(struct drm_plane *plane, | |||
13728 | struct drm_crtc *crtc = crtc_state->base.crtc; | 13728 | struct drm_crtc *crtc = crtc_state->base.crtc; |
13729 | struct drm_framebuffer *fb = state->base.fb; | 13729 | struct drm_framebuffer *fb = state->base.fb; |
13730 | struct drm_i915_gem_object *obj = intel_fb_obj(fb); | 13730 | struct drm_i915_gem_object *obj = intel_fb_obj(fb); |
13731 | enum pipe pipe = to_intel_plane(plane)->pipe; | ||
13731 | unsigned stride; | 13732 | unsigned stride; |
13732 | int ret; | 13733 | int ret; |
13733 | 13734 | ||
@@ -13761,6 +13762,22 @@ intel_check_cursor_plane(struct drm_plane *plane, | |||
13761 | return -EINVAL; | 13762 | return -EINVAL; |
13762 | } | 13763 | } |
13763 | 13764 | ||
13765 | /* | ||
13766 | * There's something wrong with the cursor on CHV pipe C. | ||
13767 | * If it straddles the left edge of the screen then | ||
13768 | * moving it away from the edge or disabling it often | ||
13769 | * results in a pipe underrun, and often that can lead to | ||
13770 | * dead pipe (constant underrun reported, and it scans | ||
13771 | * out just a solid color). To recover from that, the | ||
13772 | * display power well must be turned off and on again. | ||
13773 | * Refuse the put the cursor into that compromised position. | ||
13774 | */ | ||
13775 | if (IS_CHERRYVIEW(plane->dev) && pipe == PIPE_C && | ||
13776 | state->visible && state->base.crtc_x < 0) { | ||
13777 | DRM_DEBUG_KMS("CHV cursor C not allowed to straddle the left screen edge\n"); | ||
13778 | return -EINVAL; | ||
13779 | } | ||
13780 | |||
13764 | return 0; | 13781 | return 0; |
13765 | } | 13782 | } |
13766 | 13783 | ||