[Intel-gfx] [RFC PATCH] drm/i915/gt: Force mcr lock takeover if hardware forgot to release it
Andi Shyti
andi.shyti at linux.intel.com
Thu Sep 28 13:25:39 UTC 2023
Hi,
> + do {
> + /*
> + * Starting with MTL, we need to coordinate not only with other
> + * driver threads, but also with hardware/firmware agents. A
> + * dedicated locking register is used.
> + */
> + if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70))
> + err = wait_for(intel_uncore_read_fw(gt->uncore,
> + MTL_STEER_SEMAPHORE) == 0x1, 100);
> + else
> + break;
> +
> + /*
> + * In theory we should never fail to acquire the HW semaphore;
> + * this would indicate some hardware/firmware is misbehaving and
> + * not releasing it properly.
> + */
> + if (err == -ETIMEDOUT) {
> + gt_warn(gt,
> + "hardware MCR steering semaphore timed out "
> + "forcing lock takeover\n");
> + /*
> + * Force lock takeover
> + */
> + intel_uncore_write_fw(gt->uncore,
> + MTL_STEER_SEMAPHORE, 0x1);
> + }
> + } while (err != -ETIMEDOUT);
this is '==' of course... now I missed the CI tests.
Andi
More information about the Intel-gfx
mailing list