drm/i915: Allow up to 32KB stride on SKL+ "sprites"
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 22 Dec 2017 19:22:29 +0000 (21:22 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 19 Jan 2018 13:33:58 +0000 (15:33 +0200)
SKL+ "sprites" no longer have 16KB max stride limit that earlier
platforms had. Bump up the limit to 32KB.

Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Jason Ekstrand <jason@jlekstrand.net>
Cc: Daniel Stone <daniels@collabora.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171222192231.17981-7-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_sprite.c

index cb06acf..9418848 100644 (file)
@@ -865,6 +865,7 @@ intel_check_sprite_plane(struct intel_plane *plane,
        struct drm_rect *src = &state->base.src;
        struct drm_rect *dst = &state->base.dst;
        const struct drm_rect *clip = &state->clip;
+       int max_stride = INTEL_GEN(dev_priv) >= 9 ? 32768 : 16384;
        int hscale, vscale;
        int max_scale, min_scale;
        bool can_scale;
@@ -885,7 +886,7 @@ intel_check_sprite_plane(struct intel_plane *plane,
        }
 
        /* FIXME check all gen limits */
-       if (fb->width < 3 || fb->height < 3 || fb->pitches[0] > 16384) {
+       if (fb->width < 3 || fb->height < 3 || fb->pitches[0] > max_stride) {
                DRM_DEBUG_KMS("Unsuitable framebuffer for plane\n");
                return -EINVAL;
        }