Quoting john.c.harri...@intel.com (2019-07-03 03:06:04) > From: John Harrison <john.c.harri...@intel.com> > > Newer hardware supports extra feature in the whitelist registers. This > patch updates the selftest to test that entries marked as read only > are actually read only. > > Signed-off-by: John Harrison <john.c.harri...@intel.com> > CC: Tvrtko Ursulin <tvrtko.ursu...@intel.com> > --- > .../gpu/drm/i915/gt/selftest_workarounds.c | 43 +++++++++++++------ > 1 file changed, 31 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/selftest_workarounds.c > b/drivers/gpu/drm/i915/gt/selftest_workarounds.c > index f8151d5946c8..5cd2b17105ba 100644 > --- a/drivers/gpu/drm/i915/gt/selftest_workarounds.c > +++ b/drivers/gpu/drm/i915/gt/selftest_workarounds.c > @@ -482,12 +482,12 @@ static int check_dirty_whitelist(struct > i915_gem_context *ctx, > u32 srm, lrm, rsvd; > u32 expect; > int idx; > + bool ro_reg; > > if (wo_register(engine, reg)) > continue; > > - if (ro_register(reg)) > - continue; > + ro_reg = ro_register(reg); > > srm = MI_STORE_REGISTER_MEM; > lrm = MI_LOAD_REGISTER_MEM; > @@ -588,24 +588,37 @@ static int check_dirty_whitelist(struct > i915_gem_context *ctx, > } > > GEM_BUG_ON(values[ARRAY_SIZE(values) - 1] != 0xffffffff); > - rsvd = results[ARRAY_SIZE(values)]; /* detect write masking */ > - if (!rsvd) { > - pr_err("%s: Unable to write to whitelisted register > %x\n", > - engine->name, reg); > - err = -EINVAL; > - goto out_unpin; > + if (ro_reg) { > + rsvd = 0xFFFFFFFF;
rsvd = 0; reg_write() will then dtrt. Does this not replace the skip placed in check_whitelisted_registers()? We still need a way to verify that the register exists, as even writing from a secure batch fails (not tried ring though). Do we load a spinner, tweak via mmio? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx