Message ID | 20190930183045.662-1-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Fix g4x sprite scaling stride check with GTT remapping | expand |
Quoting Ville Syrjala (2019-09-30 19:30:45) > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > I forgot to update the g4x sprite scaling stride check when GTT > remapping was introduced. The stride of the original framebuffer > is irrelevant when remapping is used and instead we want to check > the stride of the remapped view. > > Also drop the duplicate width_bytes check. We already check that > a few lines earlier. > > Fixes: df79cf441910 ("drm/i915: Store the final plane stride in plane_state") > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> So basically .stride = intel_fb_pitch() Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c index 3d56db32291b..633fa8069348 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -1513,12 +1513,13 @@ g4x_sprite_check_scaling(struct intel_crtc_state *crtc_state, const struct drm_framebuffer *fb = plane_state->base.fb; const struct drm_rect *src = &plane_state->base.src; const struct drm_rect *dst = &plane_state->base.dst; int src_x, src_w, src_h, crtc_w, crtc_h; const struct drm_display_mode *adjusted_mode = &crtc_state->base.adjusted_mode; + unsigned int stride = plane_state->color_plane[0].stride; unsigned int cpp = fb->format->cpp[0]; unsigned int width_bytes; int min_width, min_height; crtc_w = drm_rect_width(dst); crtc_h = drm_rect_height(dst); @@ -1554,15 +1555,15 @@ g4x_sprite_check_scaling(struct intel_crtc_state *crtc_state, if (width_bytes > 4096) { DRM_DEBUG_KMS("Fetch width (%d) exceeds hardware max with scaling (%u)\n", width_bytes, 4096); return -EINVAL; } - if (width_bytes > 4096 || fb->pitches[0] > 4096) { + if (stride > 4096) { DRM_DEBUG_KMS("Stride (%u) exceeds hardware max with scaling (%u)\n", - fb->pitches[0], 4096); + stride, 4096); return -EINVAL; } return 0; }