diff options
author | Tvrtko Ursulin <tvrtko.ursulin@intel.com> | 2022-09-15 16:26:52 -0700 |
---|---|---|
committer | Matt Roper <matthew.d.roper@intel.com> | 2022-09-16 07:57:20 -0700 |
commit | e23a40040819a7a3fcda3c6cedaeff80ad20c231 (patch) | |
tree | 7d49671645b0b2a5735edb51477da1ca9b3698d5 /drivers/gpu/drm/i915/gem/i915_gem_pm.c | |
parent | 78a033433a5ae4fee85511ee075bc9a48312c79e (diff) | |
download | linux-stable-e23a40040819a7a3fcda3c6cedaeff80ad20c231.tar.gz linux-stable-e23a40040819a7a3fcda3c6cedaeff80ad20c231.tar.bz2 linux-stable-e23a40040819a7a3fcda3c6cedaeff80ad20c231.zip |
drm/i915: Make GEM resume all engines
Walk all GTs from i915_gem_resume when resuming engines.
Cc: Andi Shyti <andi.shyti@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220915232654.3283095-3-matthew.d.roper@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/gem/i915_gem_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_pm.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_pm.c index 3428f735e786..2c80cc8362b6 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c @@ -212,7 +212,8 @@ int i915_gem_freeze_late(struct drm_i915_private *i915) void i915_gem_resume(struct drm_i915_private *i915) { - int ret; + struct intel_gt *gt; + int ret, i, j; GEM_TRACE("%s\n", dev_name(i915->drm.dev)); @@ -224,8 +225,25 @@ void i915_gem_resume(struct drm_i915_private *i915) * guarantee that the context image is complete. So let's just reset * it and start again. */ - intel_gt_resume(to_gt(i915)); + for_each_gt(gt, i915, i) + if (intel_gt_resume(gt)) + goto err_wedged; ret = lmem_restore(i915, I915_TTM_BACKUP_ALLOW_GPU); GEM_WARN_ON(ret); + + return; + +err_wedged: + for_each_gt(gt, i915, j) { + if (!intel_gt_is_wedged(gt)) { + dev_err(i915->drm.dev, + "Failed to re-initialize GPU[%u], declaring it wedged!\n", + j); + intel_gt_set_wedged(gt); + } + + if (j == i) + break; + } } |