[PATCH 6/8] debug
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Jul 17 12:10:55 UTC 2019
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 3 ++-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 24 +++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 65cbf1d9118d..169a3ccd43f2 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -986,7 +986,7 @@ read_subslice_reg(struct intel_engine_cs *engine, int slice, int subslice,
intel_uncore_forcewake_get__locked(uncore, fw_domains);
old_mcr = mcr = intel_uncore_read_fw(uncore, GEN8_MCR_SELECTOR);
-
+printk("old_mcr=%x\n", old_mcr);
mcr &= ~mcr_mask;
mcr |= mcr_ss;
intel_uncore_write_fw(uncore, GEN8_MCR_SELECTOR, mcr);
@@ -996,6 +996,7 @@ read_subslice_reg(struct intel_engine_cs *engine, int slice, int subslice,
mcr &= ~mcr_mask;
mcr |= old_mcr & mcr_mask;
+printk("restore_mcr=%x\n", mcr);
intel_uncore_write_fw(uncore, GEN8_MCR_SELECTOR, mcr);
intel_uncore_forcewake_put__locked(uncore, fw_domains);
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index ff532ff5d574..60fd2ff5a800 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -948,6 +948,11 @@ wa_verify(const struct i915_wa *wa, u32 cur, const char *name, const char *from)
wa->val, wa->mask);
return false;
+ } else {
+ DRM_DEBUG_DRIVER("%s workaround OK on %s! (%x=%x/%x, expected %x, mask=%x)\n",
+ name, from, i915_mmio_reg_offset(wa->reg),
+ cur, cur & wa->read,
+ wa->val, wa->mask);
}
return true;
@@ -970,7 +975,26 @@ wa_list_apply(struct intel_uncore *uncore, const struct i915_wa_list *wal)
intel_uncore_forcewake_get__locked(uncore, fw);
for (i = 0, wa = wal->list; i < wal->count; i++, wa++) {
+if (i915_mmio_reg_offset(wa->reg) == i915_mmio_reg_offset(GEN8_MCR_SELECTOR)) {
+printk("GEN8_MCR_SELECTOR before\nmcr=%x\n",
+ intel_uncore_read_fw(uncore, GEN8_MCR_SELECTOR));
+}
+if (i915_mmio_reg_offset(wa->reg) == i915_mmio_reg_offset(GEN8_L3SQCREG4)) {
+printk("GEN8_L3SQCREG4 before\nmcr=%x reg=%x\n",
+ intel_uncore_read_fw(uncore, GEN8_MCR_SELECTOR),
+ intel_uncore_read_fw(uncore, GEN8_L3SQCREG4));
+}
intel_uncore_rmw_fw(uncore, wa->reg, wa->mask, wa->val);
+if (i915_mmio_reg_offset(wa->reg) == i915_mmio_reg_offset(GEN8_MCR_SELECTOR)) {
+printk("GEN8_MCR_SELECTOR after\nmcr=%x\n",
+ intel_uncore_read_fw(uncore, GEN8_MCR_SELECTOR));
+}
+if (i915_mmio_reg_offset(wa->reg) == i915_mmio_reg_offset(GEN8_L3SQCREG4)) {
+printk("GEN8_L3SQCREG4 after\nmcr=%x reg=%x mask=%x val=%x\n",
+ intel_uncore_read_fw(uncore, GEN8_MCR_SELECTOR),
+ intel_uncore_read_fw(uncore, GEN8_L3SQCREG4),
+ wa->mask, wa->val);
+}
if (IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM))
wa_verify(wa,
intel_uncore_read_fw(uncore, wa->reg),
--
2.20.1
More information about the Intel-gfx-trybot
mailing list