drm/i915/bdw: WaProgramL3SqcReg1Default
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 31 Mar 2015 23:03:21 +0000 (16:03 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 7 Apr 2015 08:25:58 +0000 (10:25 +0200)
Program the default initial value of the L3SqcReg1 on BDW for performance

v2: Default confirmed and using intel_ring_emit_wa as Mika pointed out.

v3: Spec shows now a different value. It tells us to set to 0x784000
    instead the 0x610000 that is there already.
    Also rebased after a long time so using WA_WRITE now.

Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_ringbuffer.c

index 8db2a91692667e33bf5a91eb0bd4700afc12615c..9966d3294a02eceec1fadc251798d49ac411a57e 100644 (file)
@@ -5336,6 +5336,9 @@ enum skl_disp_power_wells {
 #define GEN7_L3SQCREG1                         0xB010
 #define  VLV_B0_WA_L3SQCREG1_VALUE             0x00D30000
 
+#define GEN8_L3SQCREG1                         0xB100
+#define  BDW_WA_L3SQCREG1_DEFAULT              0x784000
+
 #define GEN7_L3CNTLREG1                                0xB01C
 #define  GEN7_WA_FOR_GEN7_L3_CONTROL                   0x3C47FF8C
 #define  GEN7_L3AGDIS                          (1<<19)
index a26bdf89e270a7fea993cb85a0a30b068202bd31..b5af9b121ce1f9fe491814c5660b10ae547f8aa4 100644 (file)
@@ -853,6 +853,9 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
                            GEN6_WIZ_HASHING_MASK,
                            GEN6_WIZ_HASHING_16x4);
 
+       /* WaProgramL3SqcReg1Default:bdw */
+       WA_WRITE(GEN8_L3SQCREG1, BDW_WA_L3SQCREG1_DEFAULT);
+
        return 0;
 }