Message ID | 1506432285-14979-7-git-send-email-sagar.a.kamble@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Quoting Sagar Arun Kamble (2017-09-26 14:24:44) > diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c > index d710f0d..aec3f6b 100644 > --- a/drivers/gpu/drm/i915/intel_uc.c > +++ b/drivers/gpu/drm/i915/intel_uc.c > @@ -562,6 +562,14 @@ 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_modparams.enable_guc_submission) > + i915_guc_submission_disable(dev_priv); General rule of thumb is that in disable we want to check some dependent state setup by enable, not a user parameter. -Chris
On 9/26/2017 7:22 PM, Chris Wilson wrote: > Quoting Sagar Arun Kamble (2017-09-26 14:24:44) >> diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c >> index d710f0d..aec3f6b 100644 >> --- a/drivers/gpu/drm/i915/intel_uc.c >> +++ b/drivers/gpu/drm/i915/intel_uc.c >> @@ -562,6 +562,14 @@ 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_modparams.enable_guc_submission) >> + i915_guc_submission_disable(dev_priv); > General rule of thumb is that in disable we want to check some dependent > state setup by enable, not a user parameter. > -Chris Ok. then will update the disable path to check if execbuf_client is setup and call it without checking for modparam. Thanks.
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 0d9a107..64b278c 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2882,6 +2882,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; } diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c index d710f0d..aec3f6b 100644 --- a/drivers/gpu/drm/i915/intel_uc.c +++ b/drivers/gpu/drm/i915/intel_uc.c @@ -562,6 +562,14 @@ 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_modparams.enable_guc_submission) + 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); diff --git a/drivers/gpu/drm/i915/intel_uc.h b/drivers/gpu/drm/i915/intel_uc.h index 6163ff9..9b12f3c 100644 --- a/drivers/gpu/drm/i915/intel_uc.h +++ b/drivers/gpu/drm/i915/intel_uc.h @@ -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); void intel_guc_sanitize(struct intel_guc *guc); int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len);