[Intel-gfx] [PATCH] drm/i915/selftests: Teach guc to take intel_gt as its argument
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Oct 16 12:43:49 UTC 2019
On 16/10/2019 12:53, Chris Wilson wrote:
> The guc selftests are hardware^W firmare centric and so want to use the
Typo in firmware.
> gt as its target.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
> drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 42 ++++++++---------------
> 1 file changed, 14 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
> index f927f851aadf..d8a80388bd31 100644
> --- a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
> @@ -108,22 +108,15 @@ static bool client_doorbell_in_sync(struct intel_guc_client *client)
> * validating that the doorbells status expected by the driver matches what the
> * GuC/HW have.
> */
> -static int igt_guc_clients(void *args)
> +static int igt_guc_clients(void *arg)
> {
> - struct drm_i915_private *dev_priv = args;
> + struct intel_gt *gt = arg;
> + struct intel_guc *guc = >->uc.guc;
> intel_wakeref_t wakeref;
> - struct intel_guc *guc;
> int err = 0;
>
> - GEM_BUG_ON(!HAS_GT_UC(dev_priv));
> - wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
> -
> - guc = &dev_priv->gt.uc.guc;
> - if (!guc) {
> - pr_err("No guc object!\n");
> - err = -EINVAL;
> - goto unlock;
> - }
Must be some refactor caught someone of guard. :)
> + GEM_BUG_ON(!HAS_GT_UC(gt->i915));
> + wakeref = intel_runtime_pm_get(gt->uncore->rpm);
>
> err = check_all_doorbells(guc);
> if (err)
> @@ -188,7 +181,7 @@ static int igt_guc_clients(void *args)
> guc_clients_create(guc);
> guc_clients_enable(guc);
> unlock:
> - intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
> + intel_runtime_pm_put(gt->uncore->rpm, wakeref);
> return err;
> }
>
> @@ -199,21 +192,14 @@ static int igt_guc_clients(void *args)
> */
> static int igt_guc_doorbells(void *arg)
> {
> - struct drm_i915_private *dev_priv = arg;
> + struct intel_gt *gt = arg;
> + struct intel_guc *guc = >->uc.guc;
> intel_wakeref_t wakeref;
> - struct intel_guc *guc;
> int i, err = 0;
> u16 db_id;
>
> - GEM_BUG_ON(!HAS_GT_UC(dev_priv));
> - wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
> -
> - guc = &dev_priv->gt.uc.guc;
> - if (!guc) {
> - pr_err("No guc object!\n");
> - err = -EINVAL;
> - goto unlock;
> - }
> + GEM_BUG_ON(!HAS_GT_UC(gt->i915));
> + wakeref = intel_runtime_pm_get(gt->uncore->rpm);
>
> err = check_all_doorbells(guc);
> if (err)
> @@ -295,19 +281,19 @@ static int igt_guc_doorbells(void *arg)
> guc_client_free(clients[i]);
> }
> unlock:
> - intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
> + intel_runtime_pm_put(gt->uncore->rpm, wakeref);
> return err;
> }
>
> -int intel_guc_live_selftest(struct drm_i915_private *dev_priv)
> +int intel_guc_live_selftest(struct drm_i915_private *i915)
> {
> static const struct i915_subtest tests[] = {
> SUBTEST(igt_guc_clients),
> SUBTEST(igt_guc_doorbells),
> };
>
> - if (!USES_GUC_SUBMISSION(dev_priv))
> + if (!USES_GUC_SUBMISSION(i915))
> return 0;
>
> - return i915_subtests(tests, dev_priv);
> + return intel_gt_live_subtests(tests, &i915->gt);
> }
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list