[PATCH 5/7] drm/i915: Skip CS verification of L3 bank registers

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Tue Jul 16 07:05:55 UTC 2019


From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Access to 0xb100 - 0xb3ff mmio range is controlled by the MCR selector
which only affects CPU MMIO. Therefore these registers cannot be realiably
read with MI_SRM from the command streamer so skip their verification.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index e133742fc4b2..df91c5604210 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -1454,8 +1454,18 @@ wa_list_srm(struct i915_request *rq,
 		return PTR_ERR(cs);
 
 	for (i = 0, wa = wal->list; i < wal->count; i++, wa++) {
+		u32 offset = i915_mmio_reg_offset(wa->reg);
+
+		/*
+		 * Registers in this range are affected by the MCR selector
+		 * which only controls CPU initiated MMIO. Routing does not
+		 * work for CS access so we cannot verify them on this path.
+		 */
+		if (offset >= 0xb100 && offset <= 0xb3ff)
+			continue;
+
 		*cs++ = srm;
-		*cs++ = i915_mmio_reg_offset(wa->reg);
+		*cs++ = offset;
 		*cs++ = i915_ggtt_offset(vma) + sizeof(u32) * i;
 		*cs++ = 0;
 	}
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list