@@ -2847,6 +2847,8 @@ int i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
i915_gem_revoke_fences(dev_priv);
+ intel_uc_reset_prepare(dev_priv);
+
return err;
}
@@ -595,3 +595,11 @@ int intel_uc_resume(struct drm_i915_private *dev_priv)
{
return 0;
}
+
+int intel_uc_reset_prepare(struct drm_i915_private *dev_priv)
+{
+ if (i915.enable_guc_submission)
+ i915_guc_submission_disable(dev_priv);
+
+ return intel_uc_runtime_suspend(dev_priv);
+}
@@ -212,6 +212,7 @@ struct intel_huc {
int intel_uc_runtime_resume(struct drm_i915_private *dev_priv);
int intel_uc_suspend(struct drm_i915_private *dev_priv);
int intel_uc_resume(struct drm_i915_private *dev_priv);
+int intel_uc_reset_prepare(struct drm_i915_private *dev_priv);
int intel_guc_sample_forcewake(struct intel_guc *guc);
int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len);
int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32 len);