]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/i915/gen11: enable support for headerless msgs
authorDongwon Kim <dongwon.kim@intel.com>
Thu, 25 Apr 2019 05:50:05 +0000 (06:50 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 24 May 2019 09:06:26 +0000 (10:06 +0100)
Setting bit5 (headerless msg for preemptible GPGPU context) of SAMPLER_MODE
register to enable support for the headless msgs on gen11. None of existing
use cases will be affected by this as this change makes both types of
message - headerless and w/ header supported at the same time. It also
complies with the new recommendation for the default bit value for the
next gen.

v2: rewrote commit message to include more information
v3: setting the bit in icl_ctx_workarounds_init()

Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190425055005.21790-1-chris@chris-wilson.co.uk
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/gt/intel_workarounds.c
drivers/gpu/drm/i915/i915_reg.h

index 990b278a36d10c4eba96567cb4fa24fabc8d974c..ce4bcca3f83ca5b9de1225fd7b441124e4c51c9b 100644 (file)
@@ -573,6 +573,10 @@ static void icl_ctx_workarounds_init(struct intel_engine_cs *engine,
        WA_SET_FIELD_MASKED(GEN8_CS_CHICKEN1,
                            GEN9_PREEMPT_GPGPU_LEVEL_MASK,
                            GEN9_PREEMPT_GPGPU_THREAD_GROUP_LEVEL);
+
+       /* allow headerless messages for preemptible GPGPU context */
+       WA_SET_BIT_MASKED(GEN10_SAMPLER_MODE,
+                         GEN11_SAMPLER_ENABLE_HEADLESS_MSG);
 }
 
 static void
index bba420aaa4ab1d6ef521f521a856437588782bd7..49dce04dd688e6fe87a6096f8ee4fcc25da5f8e1 100644 (file)
@@ -8866,6 +8866,7 @@ enum {
 #define   GEN11_LSN_UNSLCVC_GAFS_HALF_SF_MAXALLOC      (1 << 7)
 
 #define GEN10_SAMPLER_MODE             _MMIO(0xE18C)
+#define   GEN11_SAMPLER_ENABLE_HEADLESS_MSG    REG_BIT(5)
 
 /* IVYBRIDGE DPF */
 #define GEN7_L3CDERRST1(slice)         _MMIO(0xB008 + (slice) * 0x200) /* L3CD Error Status 1 */