]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915: Disable compression tricks on JSL
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 18 Sep 2024 14:44:40 +0000 (17:44 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 9 Oct 2024 16:04:24 +0000 (19:04 +0300)
Bspec asks us to disable some compression trick on JSL. While the
bspec description is pretty vague it looks like this is some extra
trick for 10bpc+ CCS which presumably the ICL derived display engine
doesn't support.

Note that we aren't currently exposing 10bpc CCS scanout support,
but once that gets added this presumably becomes an issue.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240918144445.5716-3-ville.syrjala@linux.intel.com
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
drivers/gpu/drm/i915/gt/intel_gt_regs.h
drivers/gpu/drm/i915/gt/intel_workarounds.c

index 04577658695ef8877799f0b9c979dc4ddab8f9f9..6dba65e54cdb812721d3f910d1a9ee1ca90e5bca 100644 (file)
 #define XEHPG_INSTDONE_GEOM_SVG                        MCR_REG(0x666c)
 
 #define CACHE_MODE_0_GEN7                      _MMIO(0x7000) /* IVB+ */
+#define   DISABLE_REPACKING_FOR_COMPRESSION    REG_BIT(15) /* jsl+ */
 #define   RC_OP_FLUSH_ENABLE                   (1 << 0)
 #define   HIZ_RAW_STALL_OPT_DISABLE            (1 << 2)
 #define CACHE_MODE_1                           _MMIO(0x7004) /* IVB+ */
index e539a656cfc3ae8d833f22efd23aeb601fb780ca..6972525fe6beea47301ac8c0d28c8ee368bcfb8a 100644 (file)
@@ -2299,6 +2299,15 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
                             GEN8_RC_SEMA_IDLE_MSG_DISABLE);
        }
 
+       if (IS_JASPERLAKE(i915) || IS_ELKHARTLAKE(i915)) {
+               /*
+                * "Disable Repacking for Compression (masked R/W access)
+                *  before rendering compressed surfaces for display."
+                */
+               wa_masked_en(wal, CACHE_MODE_0_GEN7,
+                            DISABLE_REPACKING_FOR_COMPRESSION);
+       }
+
        if (GRAPHICS_VER(i915) == 11) {
                /* This is not an Wa. Enable for better image quality */
                wa_masked_en(wal,