]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/i915/fbc: Allow FBC with CCS modifiers on SKL+
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 23 Jan 2024 09:02:44 +0000 (11:02 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 2 Feb 2024 21:56:52 +0000 (23:56 +0200)
Only display workarounds 0391 and 0475 call for disabling
FBC with render compression, and those are listed only for
pre-prod SKL steppings. So it should be safe to enable
FB+CCS on production hardware.

AFAIK CCS is limited to 50% bandwidth reduction (perhaps
clear color can do better?). FBC can exceed that number
by quite a bit, given the right kind of framebuffer
contents. So piling on both kinds of compressions could
still make sense.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10125
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240123090244.30025-1-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/display/intel_fbc.c

index f17a1afb4929ec35d6e446a1b04f74fffe54b4a5..b453fcbd67dadd16714f294c93b7053fc39a870b 100644 (file)
@@ -1087,18 +1087,7 @@ static bool i8xx_fbc_tiling_valid(const struct intel_plane_state *plane_state)
 
 static bool skl_fbc_tiling_valid(const struct intel_plane_state *plane_state)
 {
-       const struct drm_framebuffer *fb = plane_state->hw.fb;
-
-       switch (fb->modifier) {
-       case DRM_FORMAT_MOD_LINEAR:
-       case I915_FORMAT_MOD_Y_TILED:
-       case I915_FORMAT_MOD_Yf_TILED:
-       case I915_FORMAT_MOD_4_TILED:
-       case I915_FORMAT_MOD_X_TILED:
-               return true;
-       default:
-               return false;
-       }
+       return true;
 }
 
 static bool tiling_is_valid(const struct intel_plane_state *plane_state)