We need to explicitly set the TLB Request Timer initial value in the
BW_BUDDY registers to 0x8 rather than relying on the hardware default.

Bspec: 52890
Bspec: 50044
Cc: Stanislav Lisovskiy <stanislav.lisovs...@intel.com>
Signed-off-by: Matt Roper <matthew.d.ro...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_power.c | 6 ++++++
 drivers/gpu/drm/i915/i915_reg.h                    | 1 +
 2 files changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c 
b/drivers/gpu/drm/i915/display/intel_display_power.c
index 6e55e88ca0d0..2ad2694a28e6 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -5001,6 +5001,12 @@ static void tgl_bw_buddy_init(struct drm_i915_private 
*dev_priv)
                               table[i].page_mask);
                intel_de_write(dev_priv, BW_BUDDY2_PAGE_MASK,
                               table[i].page_mask);
+
+               /* Wa_22010178259:tgl */
+               intel_de_rmw(dev_priv, BW_BUDDY1_CTL,
+                            BW_BUDDY_TLB_REQ_TIMER_MASK, 0x8);
+               intel_de_rmw(dev_priv, BW_BUDDY2_CTL,
+                            BW_BUDDY_TLB_REQ_TIMER_MASK, 0x8);
        }
 }
 
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index a6847f26678c..d829b9ae8402 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7766,6 +7766,7 @@ enum {
 #define BW_BUDDY1_CTL                  _MMIO(0x45140)
 #define BW_BUDDY2_CTL                  _MMIO(0x45150)
 #define   BW_BUDDY_DISABLE             REG_BIT(31)
+#define   BW_BUDDY_TLB_REQ_TIMER_MASK  REG_GENMASK(21, 16)
 
 #define BW_BUDDY1_PAGE_MASK            _MMIO(0x45144)
 #define BW_BUDDY2_PAGE_MASK            _MMIO(0x45154)
-- 
2.24.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to