]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/i915/fbc: Remove ancient 16k plane stride limit
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 3 Oct 2023 19:42:51 +0000 (22:42 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 5 Oct 2023 10:25:36 +0000 (13:25 +0300)
The 16k max plane stride limit seems to be originally from
i965gm, and no explicit limit has been specified since (g4x+).
So let's assume the max plane stride itself is a suitable limit
also for the more recent FBC hardware.

In fact even for i965gm the max X-tiled stride is also 16k so
technically we don't need the check there either, but let's
keep it there anyway since it's explicitly mentioned in the
spec. Gen2/3 have more strict limits checked separately.

Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231003194256.28569-1-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_fbc.c

index 5f13c6776c7d0b58f88e154fda110a12a9b06a0a..f12ea170b748df5db3224b3cafe490e988b02c14 100644 (file)
@@ -871,7 +871,8 @@ static bool stride_is_valid(const struct intel_plane_state *plane_state)
        if (DISPLAY_VER(i915) == 2 || DISPLAY_VER(i915) == 3)
                return stride == 4096 || stride == 8192;
 
-       if (DISPLAY_VER(i915) == 4 && !IS_G4X(i915) && stride < 2048)
+       if (DISPLAY_VER(i915) == 4 && !IS_G4X(i915) &&
+           (stride < 2048 || stride > 16384))
                return false;
 
        /* Display WA #1105: skl,bxt,kbl,cfl,glk */
@@ -879,9 +880,6 @@ static bool stride_is_valid(const struct intel_plane_state *plane_state)
            fb->modifier == DRM_FORMAT_MOD_LINEAR && stride & 511)
                return false;
 
-       if (stride > 16384)
-               return false;
-
        return true;
 }