@@ -2659,16 +2659,16 @@ static int i915_wa_registers(struct seq_file *m, void *unused)
seq_printf(m, "Workarounds applied: %d\n", dev_priv->workarounds.count);
for (i = 0; i < dev_priv->workarounds.count; ++i) {
- u32 addr, mask;
+ u32 addr, mask, value, read;
+ bool ok;
addr = dev_priv->workarounds.reg[i].addr;
mask = dev_priv->workarounds.reg[i].mask;
- dev_priv->workarounds.reg[i].value = I915_READ(addr) | mask;
- if (dev_priv->workarounds.reg[i].addr)
- seq_printf(m, "0x%X: 0x%08X, mask: 0x%08X\n",
- dev_priv->workarounds.reg[i].addr,
- dev_priv->workarounds.reg[i].value,
- dev_priv->workarounds.reg[i].mask);
+ value = dev_priv->workarounds.reg[i].value;
+ read = I915_READ(addr);
+ ok = (value & mask) == (read & mask);
+ seq_printf(m, "0x%X: 0x%08X, mask: 0x%08X, read: 0x%08x, status: %s\n",
+ addr, value, mask, read, ok ? "OK" : "FAIL");
}
gen6_gt_force_wake_put(dev_priv, FORCEWAKE_ALL);
As the workaround list has the value as initialization time constant, we can do the simple checking on the go. For the user that doesn't have igt at hand and still server the igt's needs. Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> --- drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)