Skip to content

Commit

Permalink
drm/i915/guc: Take enable_guc_loading check out of GEM core code
Browse files Browse the repository at this point in the history
The should happen as soon as possible, but always within the logic that
depends on it (and not interrupting the top-level driver control flow).

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1490720027-23234-1-git-send-email-oscar.mateo@intel.com
  • Loading branch information
Oscar Mateo authored and Joonas Lahtinen committed Mar 30, 2017
1 parent 2e5fec5 commit b899140
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
3 changes: 1 addition & 2 deletions drivers/gpu/drm/i915/i915_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,8 +549,7 @@ static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
static void i915_gem_fini(struct drm_i915_private *dev_priv)
{
mutex_lock(&dev_priv->drm.struct_mutex);
if (i915.enable_guc_loading)
intel_uc_fini_hw(dev_priv);
intel_uc_fini_hw(dev_priv);
i915_gem_cleanup_engines(dev_priv);
i915_gem_context_fini(dev_priv);
mutex_unlock(&dev_priv->drm.struct_mutex);
Expand Down
10 changes: 4 additions & 6 deletions drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -4611,12 +4611,10 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)

intel_mocs_init_l3cc_table(dev_priv);

if (i915.enable_guc_loading) {
/* We can't enable contexts until all firmware is loaded */
ret = intel_uc_init_hw(dev_priv);
if (ret)
goto out;
}
/* We can't enable contexts until all firmware is loaded */
ret = intel_uc_init_hw(dev_priv);
if (ret)
goto out;

out:
intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
Expand Down
6 changes: 6 additions & 0 deletions drivers/gpu/drm/i915/intel_uc.c
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,9 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
{
int ret, attempts;

if (!i915.enable_guc_loading)
return 0;

gen9_reset_guc_interrupts(dev_priv);

/* We need to notify the guc whenever we change the GGTT */
Expand Down Expand Up @@ -343,6 +346,9 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)

void intel_uc_fini_hw(struct drm_i915_private *dev_priv)
{
if (!i915.enable_guc_loading)
return;

if (i915.enable_guc_submission) {
i915_guc_submission_disable(dev_priv);
gen9_disable_guc_interrupts(dev_priv);
Expand Down

0 comments on commit b899140

Please sign in to comment.