[Intel-gfx] [PATCH] drm/i915: Check the minimum pitch for the user framebuffer
Ville Syrjälä
ville.syrjala at linux.intel.com
Wed Jun 11 12:45:25 CEST 2014
On Tue, Jun 10, 2014 at 10:22:33PM +0100, Chris Wilson wrote:
> Compute the smallest pitch required for a linear framebuffer and assert
> that the user has declared a pitch that meets that minimum requirement.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/intel_display.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index cc62b140eb1c..ef34badbe69c 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -11808,6 +11808,8 @@ static int intel_framebuffer_init(struct drm_device *dev,
> {
> int aligned_height;
> int pitch_limit;
> + int depth;
> + int bpp;
> int ret;
>
> WARN_ON(!mutex_is_locked(&dev->struct_mutex));
> @@ -11823,6 +11825,15 @@ static int intel_framebuffer_init(struct drm_device *dev,
> return -EINVAL;
> }
>
> + drm_fb_get_bpp_depth(mode_cmd->pixel_format, &bpp, &depth);
> + if (mode_cmd->pitches[0] < intel_framebuffer_pitch_for_width(mode_cmd->width,
> + bpp)) {
> + DRM_DEBUG("pitch (%d) must be at least the linear stride (%d)\n",
> + mode_cmd->pitches[0],
> + intel_framebuffer_pitch_for_width(mode_cmd->width, bpp));
> + return -EINVAL;
> + }
How come framebuffer_check() in drm_crtc.c didn't catch this?
> +
> if (INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev)) {
> pitch_limit = 32*1024;
> } else if (INTEL_INFO(dev)->gen >= 4) {
> --
> 2.0.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list