@@ -2865,6 +2865,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;
}
@@ -572,6 +572,13 @@ void intel_uc_sanitize(struct drm_i915_private *dev_priv)
dev_priv->guc.fw.load_status = INTEL_UC_FIRMWARE_NONE;
}
+int intel_uc_reset_prepare(struct drm_i915_private *dev_priv)
+{
+ i915_guc_submission_disable(dev_priv);
+
+ return intel_uc_runtime_suspend(dev_priv);
+}
+
int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len)
{
WARN(1, "Unexpected send: action=%#x\n", *action);
@@ -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);
void intel_uc_sanitize(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);