diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sprite.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_sprite.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c index 32f10621fac8..3be22c0fcfb5 100644 --- a/drivers/gpu/drm/i915/intel_sprite.c +++ b/drivers/gpu/drm/i915/intel_sprite.c | |||
@@ -864,7 +864,7 @@ intel_check_sprite_plane(struct intel_plane *plane, | |||
864 | uint32_t src_x, src_y, src_w, src_h; | 864 | uint32_t src_x, src_y, src_w, src_h; |
865 | struct drm_rect *src = &state->base.src; | 865 | struct drm_rect *src = &state->base.src; |
866 | struct drm_rect *dst = &state->base.dst; | 866 | struct drm_rect *dst = &state->base.dst; |
867 | const struct drm_rect *clip = &state->clip; | 867 | struct drm_rect clip = {}; |
868 | int max_stride = INTEL_GEN(dev_priv) >= 9 ? 32768 : 16384; | 868 | int max_stride = INTEL_GEN(dev_priv) >= 9 ? 32768 : 16384; |
869 | int hscale, vscale; | 869 | int hscale, vscale; |
870 | int max_scale, min_scale; | 870 | int max_scale, min_scale; |
@@ -923,7 +923,11 @@ intel_check_sprite_plane(struct intel_plane *plane, | |||
923 | vscale = drm_rect_calc_vscale_relaxed(src, dst, min_scale, max_scale); | 923 | vscale = drm_rect_calc_vscale_relaxed(src, dst, min_scale, max_scale); |
924 | BUG_ON(vscale < 0); | 924 | BUG_ON(vscale < 0); |
925 | 925 | ||
926 | state->base.visible = drm_rect_clip_scaled(src, dst, clip, hscale, vscale); | 926 | if (crtc_state->base.enable) |
927 | drm_mode_get_hv_timing(&crtc_state->base.mode, | ||
928 | &clip.x2, &clip.y2); | ||
929 | |||
930 | state->base.visible = drm_rect_clip_scaled(src, dst, &clip, hscale, vscale); | ||
927 | 931 | ||
928 | crtc_x = dst->x1; | 932 | crtc_x = dst->x1; |
929 | crtc_y = dst->y1; | 933 | crtc_y = dst->y1; |