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

Reply via email to