|
Jiri Slaby |
ef7db2 |
From: Matt Roper <matthew.d.roper@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Date: Wed, 1 Feb 2023 14:28:28 -0800
|
|
Jiri Slaby |
ef7db2 |
Subject: [PATCH] drm/i915/pvc: Annotate two more workaround/tuning registers
|
|
Jiri Slaby |
ef7db2 |
as MCR
|
|
Jiri Slaby |
ef7db2 |
References: bsc#1012628
|
|
Jiri Slaby |
ef7db2 |
Patch-mainline: 6.2.3
|
|
Jiri Slaby |
ef7db2 |
Git-commit: effc0905d741b4138806747407baf8de98390c72
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
[ Upstream commit effc0905d741b4138806747407baf8de98390c72 ]
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
XEHPC_LNCFMISCCFGREG0 and XEHPC_L3SCRUB are both in MCR register ranges
|
|
Jiri Slaby |
ef7db2 |
on PVC (with HALFBSLICE and L3BANK replication respectively), so they
|
|
Jiri Slaby |
ef7db2 |
should be explicitly declared as MCR registers and use MCR-aware
|
|
Jiri Slaby |
ef7db2 |
workaround handlers.
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
The workarounds/tuning settings should still be applied properly on PVC
|
|
Jiri Slaby |
ef7db2 |
even without the MCR annotation, but readback verification on
|
|
Jiri Slaby |
ef7db2 |
CONFIG_DRM_I915_DEBUG_GEM builds could potentitally give false positive
|
|
Jiri Slaby |
ef7db2 |
"workaround lost on load" warnings on parts fused such that a unicast
|
|
Jiri Slaby |
ef7db2 |
read targets a terminated register instance.
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
Fixes: a9e69428b1b4 ("drm/i915: Define MCR registers explicitly")
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Link: https://patchwork.freedesktop.org/patch/msgid/20230201222831.608281-1-matthew.d.roper@intel.com
|
|
Jiri Slaby |
ef7db2 |
(cherry picked from commit 4039e44237e8ebb06f0e4af549fbedf7c41df9db)
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
ef7db2 |
---
|
|
Jiri Slaby |
ef7db2 |
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 4 ++--
|
|
Jiri Slaby |
ef7db2 |
drivers/gpu/drm/i915/gt/intel_workarounds.c | 14 ++++++++++----
|
|
Jiri Slaby |
ef7db2 |
2 files changed, 12 insertions(+), 6 deletions(-)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
|
|
Jiri Slaby |
ef7db2 |
index 838f7316..0d47c930 100644
|
|
Jiri Slaby |
ef7db2 |
--- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
|
|
Jiri Slaby |
ef7db2 |
+++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
|
|
Jiri Slaby |
ef7db2 |
@@ -969,7 +969,7 @@
|
|
Jiri Slaby |
ef7db2 |
#define GEN7_WA_FOR_GEN7_L3_CONTROL 0x3C47FF8C
|
|
Jiri Slaby |
ef7db2 |
#define GEN7_L3AGDIS (1 << 19)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
-#define XEHPC_LNCFMISCCFGREG0 _MMIO(0xb01c)
|
|
Jiri Slaby |
ef7db2 |
+#define XEHPC_LNCFMISCCFGREG0 MCR_REG(0xb01c)
|
|
Jiri Slaby |
ef7db2 |
#define XEHPC_HOSTCACHEEN REG_BIT(1)
|
|
Jiri Slaby |
ef7db2 |
#define XEHPC_OVRLSCCC REG_BIT(0)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
@@ -1032,7 +1032,7 @@
|
|
Jiri Slaby |
ef7db2 |
#define XEHP_L3SCQREG7 MCR_REG(0xb188)
|
|
Jiri Slaby |
ef7db2 |
#define BLEND_FILL_CACHING_OPT_DIS REG_BIT(3)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
-#define XEHPC_L3SCRUB _MMIO(0xb18c)
|
|
Jiri Slaby |
ef7db2 |
+#define XEHPC_L3SCRUB MCR_REG(0xb18c)
|
|
Jiri Slaby |
ef7db2 |
#define SCRUB_CL_DWNGRADE_SHARED REG_BIT(12)
|
|
Jiri Slaby |
ef7db2 |
#define SCRUB_RATE_PER_BANK_MASK REG_GENMASK(2, 0)
|
|
Jiri Slaby |
ef7db2 |
#define SCRUB_RATE_4B_PER_CLK REG_FIELD_PREP(SCRUB_RATE_PER_BANK_MASK, 0x6)
|
|
Jiri Slaby |
ef7db2 |
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
|
|
Jiri Slaby |
ef7db2 |
index c2d9d07a..80b0e9a5 100644
|
|
Jiri Slaby |
ef7db2 |
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
|
|
Jiri Slaby |
ef7db2 |
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
|
|
Jiri Slaby |
ef7db2 |
@@ -224,6 +224,12 @@ wa_write(struct i915_wa_list *wal, i915_reg_t reg, u32 set)
|
|
Jiri Slaby |
ef7db2 |
wa_write_clr_set(wal, reg, ~0, set);
|
|
Jiri Slaby |
ef7db2 |
}
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
+static void
|
|
Jiri Slaby |
ef7db2 |
+wa_mcr_write(struct i915_wa_list *wal, i915_mcr_reg_t reg, u32 set)
|
|
Jiri Slaby |
ef7db2 |
+{
|
|
Jiri Slaby |
ef7db2 |
+ wa_mcr_write_clr_set(wal, reg, ~0, set);
|
|
Jiri Slaby |
ef7db2 |
+}
|
|
Jiri Slaby |
ef7db2 |
+
|
|
Jiri Slaby |
ef7db2 |
static void
|
|
Jiri Slaby |
ef7db2 |
wa_write_or(struct i915_wa_list *wal, i915_reg_t reg, u32 set)
|
|
Jiri Slaby |
ef7db2 |
{
|
|
Jiri Slaby |
ef7db2 |
@@ -2971,9 +2977,9 @@ add_render_compute_tuning_settings(struct drm_i915_private *i915,
|
|
Jiri Slaby |
ef7db2 |
struct i915_wa_list *wal)
|
|
Jiri Slaby |
ef7db2 |
{
|
|
Jiri Slaby |
ef7db2 |
if (IS_PONTEVECCHIO(i915)) {
|
|
Jiri Slaby |
ef7db2 |
- wa_write(wal, XEHPC_L3SCRUB,
|
|
Jiri Slaby |
ef7db2 |
- SCRUB_CL_DWNGRADE_SHARED | SCRUB_RATE_4B_PER_CLK);
|
|
Jiri Slaby |
ef7db2 |
- wa_masked_en(wal, XEHPC_LNCFMISCCFGREG0, XEHPC_HOSTCACHEEN);
|
|
Jiri Slaby |
ef7db2 |
+ wa_mcr_write(wal, XEHPC_L3SCRUB,
|
|
Jiri Slaby |
ef7db2 |
+ SCRUB_CL_DWNGRADE_SHARED | SCRUB_RATE_4B_PER_CLK);
|
|
Jiri Slaby |
ef7db2 |
+ wa_mcr_masked_en(wal, XEHPC_LNCFMISCCFGREG0, XEHPC_HOSTCACHEEN);
|
|
Jiri Slaby |
ef7db2 |
}
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
if (IS_DG2(i915)) {
|
|
Jiri Slaby |
ef7db2 |
@@ -3038,7 +3044,7 @@ general_render_compute_wa_init(struct intel_engine_cs *engine, struct i915_wa_li
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
if (IS_PONTEVECCHIO(i915)) {
|
|
Jiri Slaby |
ef7db2 |
/* Wa_16016694945 */
|
|
Jiri Slaby |
ef7db2 |
- wa_masked_en(wal, XEHPC_LNCFMISCCFGREG0, XEHPC_OVRLSCCC);
|
|
Jiri Slaby |
ef7db2 |
+ wa_mcr_masked_en(wal, XEHPC_LNCFMISCCFGREG0, XEHPC_OVRLSCCC);
|
|
Jiri Slaby |
ef7db2 |
}
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
if (IS_XEHPSDV(i915)) {
|
|
Jiri Slaby |
ef7db2 |
--
|
|
Jiri Slaby |
ef7db2 |
2.35.3
|
|
Jiri Slaby |
ef7db2 |
|