Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8991403 authored by Oscar Mateo's avatar Oscar Mateo Committed by Joonas Lahtinen
Browse files

drm/i915/guc: Take enable_guc_loading check out of GEM core code



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: default avatarOscar Mateo <oscar.mateo@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1490720027-23234-1-git-send-email-oscar.mateo@intel.com
parent 2e5fec5f
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -549,7 +549,6 @@ 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);
	i915_gem_cleanup_engines(dev_priv);
	i915_gem_context_fini(dev_priv);
+4 −6
Original line number Diff line number Diff line
@@ -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;
	}

out:
	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+6 −0
Original line number Diff line number Diff line
@@ -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 */
@@ -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);