drm/i915: Skip pxp init if gt is wedged
authorZhanjun Dong <zhanjun.dong@intel.com>
Mon, 13 Nov 2023 22:49:53 +0000 (14:49 -0800)
committerJohn Harrison <John.C.Harrison@Intel.com>
Thu, 30 Nov 2023 00:06:34 +0000 (16:06 -0800)
The gt wedged could be triggered by missing guc firmware file, HW not
working, etc. Once triggered, it means all gt usage is dead, therefore we
can't enable pxp under this fatal error condition.

v2: Updated commit message.
v3: Updated return code check.

Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231113224953.378534-1-zhanjun.dong@intel.com
drivers/gpu/drm/i915/i915_driver.c
drivers/gpu/drm/i915/pxp/intel_pxp.c

index db6f7c30adde1b5f20926b058ecf3f478b843e2f..8a17eb7f93214b21d6ee5ee83494f13f4eb5e657 100644 (file)
@@ -804,7 +804,9 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (ret)
                goto out_cleanup_modeset2;
 
-       intel_pxp_init(i915);
+       ret = intel_pxp_init(i915);
+       if (ret != -ENODEV)
+               drm_dbg(&i915->drm, "pxp init failed with %d\n", ret);
 
        ret = intel_display_driver_probe(i915);
        if (ret)
index e11f562b1876d66cec82e1775ff7ff3ec3a979c2..75278e78ca90e68d6cbb7b4b72e2ab927529a029 100644 (file)
@@ -199,6 +199,9 @@ int intel_pxp_init(struct drm_i915_private *i915)
        struct intel_gt *gt;
        bool is_full_feature = false;
 
+       if (intel_gt_is_wedged(to_gt(i915)))
+               return -ENOTCONN;
+
        /*
         * NOTE: Get the ctrl_gt before checking intel_pxp_is_supported since
         * we still need it if PXP's backend tee transport is needed.