[PATCH 8/8] unicast reads

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Jul 18 18:37:33 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_workarounds.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 54e364c08e32..320573544ba8 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -793,13 +793,13 @@ wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
 		l3_en = ~0;
 	}
 
-	slice = fls(sseu->slice_mask) - 1;
+	slice = ffs(sseu->slice_mask) - 1;
 	GEM_BUG_ON(slice >= ARRAY_SIZE(sseu->subslice_mask));
-	subslice = fls(l3_en & sseu->subslice_mask[slice]);
+	subslice = ffs(l3_en & sseu->subslice_mask[slice]);
 	if (!subslice) {
 		DRM_WARN("No common index found between subslice mask %x and L3 bank mask %x!\n",
 			 sseu->subslice_mask[slice], l3_en);
-		subslice = fls(l3_en);
+		subslice = ffs(l3_en);
 		WARN_ON(!subslice);
 	}
 	subslice--;
@@ -998,12 +998,21 @@ static bool wa_list_verify(struct intel_uncore *uncore,
 	struct i915_wa *wa;
 	unsigned int i;
 	bool ok = true;
+	u32 mcr, old_mcr;
+
+	old_mcr = mcr = intel_uncore_read(uncore, GEN8_MCR_SELECTOR);
+
+	mcr &= ~BIT(31);
+	intel_uncore_write(uncore, GEN8_MCR_SELECTOR, mcr);
+	printk("wa_list_verify %x %x\n", old_mcr, mcr);
 
 	for (i = 0, wa = wal->list; i < wal->count; i++, wa++)
 		ok &= wa_verify(wa,
 				intel_uncore_read(uncore, wa->reg),
 				wal->name, from);
 
+	intel_uncore_write(uncore, GEN8_MCR_SELECTOR, old_mcr);
+
 	return ok;
 }
 
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list