drm/i915/icl: WaGAPZPriorityScheme
authorOscar Mateo <oscar.mateo@intel.com>
Tue, 8 May 2018 21:29:25 +0000 (14:29 -0700)
committerMika Kuoppala <mika.kuoppala@linux.intel.com>
Fri, 11 May 2018 12:54:46 +0000 (15:54 +0300)
The default GAPZ arbitrer priority value at power-on has been found
to be incorrect.

v2: Now renamed to Wa_1405543622
v3: Rebased on top of the WA refactoring
v4: Added HSDES reference number (Mika)
v5:
  - Rebased
  - C, not lisp (Chris)

References: HSDES#1405543622
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1525814984-20039-4-git-send-email-oscar.mateo@intel.com
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_workarounds.c

index 6aad16ee44ae2d82a59cbf16dbba6ad925d54f33..c9c2ad5f5844240681ae6aa4c07f259a5da935d2 100644 (file)
@@ -8250,8 +8250,9 @@ enum {
 #define   GEN8_DOP_CLOCK_GATE_GUC_ENABLE       (1<<4)
 #define   GEN8_DOP_CLOCK_GATE_MEDIA_ENABLE     (1<<6)
 
-#define GEN8_GARBCNTL                   _MMIO(0xB004)
-#define   GEN9_GAPS_TSV_CREDIT_DISABLE  (1<<7)
+#define GEN8_GARBCNTL                          _MMIO(0xB004)
+#define   GEN9_GAPS_TSV_CREDIT_DISABLE         (1 << 7)
+#define   GEN11_ARBITRATION_PRIO_ORDER_MASK    (0x3f << 22)
 
 #define GEN10_DFR_RATIO_EN_AND_CHICKEN _MMIO(0x9550)
 #define   DFR_DISABLE                  (1 << 9)
index 73d02d3785d4d5a99ba6357f16aa7c18f8b6a3d1..44ae0b4f60792ebceedcaa3f019c1a0529f008d8 100644 (file)
@@ -699,6 +699,12 @@ static void icl_gt_workarounds_apply(struct drm_i915_private *dev_priv)
        /* WaPipelineFlushCoherentLines:icl */
        I915_WRITE(GEN8_L3SQCREG4, I915_READ(GEN8_L3SQCREG4) |
                                   GEN8_LQSC_FLUSH_COHERENT_LINES);
+
+       /* Wa_1405543622:icl
+        * Formerly known as WaGAPZPriorityScheme
+        */
+       I915_WRITE(GEN8_GARBCNTL, I915_READ(GEN8_GARBCNTL) |
+                                 GEN11_ARBITRATION_PRIO_ORDER_MASK);
 }
 
 void intel_gt_workarounds_apply(struct drm_i915_private *dev_priv)