On Mon, 23 Mar 2026, Ville Syrjala <[email protected]> wrote: > From: Ville Syrjälä <[email protected]> > > The live_forcewake_domains selftest doesn't really test anything > particularly sensible. It only runs on platforms that have RMbus > unclaimer error detection, but that only catches display registers > which the test doesn't even access. > > I suppose if we really wanted to we might try to make the test > exercise the GT FIFO instead by writing GT registers as fast > as possible, and then checking GTFIFODBG to see if the FIFO has > overflowed. But dunno if there's much point in that. I think a > GT FIFO overflow might even be fatal to the machine. > > So in its current for the test doesn't really make sense,
*form Acked-by: Jani Nikula <[email protected]> > and it's in the way of moving all the RMbus noclaim stuff > to the display driver side. So let's just get rid of it. > > Signed-off-by: Ville Syrjälä <[email protected]> > --- > drivers/gpu/drm/i915/selftests/intel_uncore.c | 62 ------------------- > 1 file changed, 62 deletions(-) > > diff --git a/drivers/gpu/drm/i915/selftests/intel_uncore.c > b/drivers/gpu/drm/i915/selftests/intel_uncore.c > index 507bf42a1aaf..514d2200751b 100644 > --- a/drivers/gpu/drm/i915/selftests/intel_uncore.c > +++ b/drivers/gpu/drm/i915/selftests/intel_uncore.c > @@ -272,67 +272,6 @@ static int live_forcewake_ops(void *arg) > return err; > } > > -static int live_forcewake_domains(void *arg) > -{ > -#define FW_RANGE 0x40000 > - struct intel_gt *gt = arg; > - struct intel_uncore *uncore = gt->uncore; > - struct drm_i915_private *i915 = gt->i915; > - struct intel_display *display = i915->display; > - unsigned long *valid; > - u32 offset; > - int err; > - > - if (!HAS_FPGA_DBG_UNCLAIMED(display) && > - !IS_VALLEYVIEW(i915) && > - !IS_CHERRYVIEW(i915)) > - return 0; > - > - /* > - * This test may lockup the machine or cause GPU hangs afterwards. > - */ > - if (!IS_ENABLED(CONFIG_DRM_I915_SELFTEST_BROKEN)) > - return 0; > - > - valid = bitmap_zalloc(FW_RANGE, GFP_KERNEL); > - if (!valid) > - return -ENOMEM; > - > - intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL); > - > - check_for_unclaimed_mmio(uncore); > - for (offset = 0; offset < FW_RANGE; offset += 4) { > - i915_reg_t reg = { offset }; > - > - intel_uncore_posting_read_fw(uncore, reg); > - if (!check_for_unclaimed_mmio(uncore)) > - set_bit(offset, valid); > - } > - > - intel_uncore_forcewake_put(uncore, FORCEWAKE_ALL); > - > - err = 0; > - for_each_set_bit(offset, valid, FW_RANGE) { > - i915_reg_t reg = { offset }; > - > - iosf_mbi_punit_acquire(); > - intel_uncore_forcewake_reset(uncore); > - iosf_mbi_punit_release(); > - > - check_for_unclaimed_mmio(uncore); > - > - intel_uncore_posting_read_fw(uncore, reg); > - if (check_for_unclaimed_mmio(uncore)) { > - pr_err("Unclaimed mmio read to register 0x%04x\n", > - offset); > - err = -EINVAL; > - } > - } > - > - bitmap_free(valid); > - return err; > -} > - > static int live_fw_table(void *arg) > { > struct intel_gt *gt = arg; > @@ -348,7 +287,6 @@ int intel_uncore_live_selftests(struct drm_i915_private > *i915) > static const struct i915_subtest tests[] = { > SUBTEST(live_fw_table), > SUBTEST(live_forcewake_ops), > - SUBTEST(live_forcewake_domains), > }; > > return intel_gt_live_subtests(tests, to_gt(i915)); -- Jani Nikula, Intel
