Commit d4a70a10 authored by Michal Wajdeczko's avatar Michal Wajdeczko Committed by Tvrtko Ursulin

drm/i915: Make intel_uc_sanitize_options() more robust

After negative guc fw selection we could leave guc
submission flag still turned on. Reorder some checks
to cover this case. While here, fix info message and
return early if there is no Guc.
Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
[tursulin: fixup bad alignment]
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170315133741.150420-1-michal.wajdeczko@intel.com
parent 6833b82e
...@@ -50,23 +50,20 @@ static int __intel_uc_reset_hw(struct drm_i915_private *dev_priv) ...@@ -50,23 +50,20 @@ static int __intel_uc_reset_hw(struct drm_i915_private *dev_priv)
void intel_uc_sanitize_options(struct drm_i915_private *dev_priv) void intel_uc_sanitize_options(struct drm_i915_private *dev_priv)
{ {
if (!HAS_GUC(dev_priv)) { if (!HAS_GUC(dev_priv)) {
if (i915.enable_guc_loading > 0) if (i915.enable_guc_loading > 0 ||
DRM_INFO("Ignoring GuC options, no hardware"); i915.enable_guc_submission > 0)
DRM_INFO("Ignoring GuC options, no hardware\n");
i915.enable_guc_loading = 0; i915.enable_guc_loading = 0;
i915.enable_guc_submission = 0; i915.enable_guc_submission = 0;
} else { return;
}
/* A negative value means "use platform default" */ /* A negative value means "use platform default" */
if (i915.enable_guc_loading < 0) if (i915.enable_guc_loading < 0)
i915.enable_guc_loading = HAS_GUC_UCODE(dev_priv); i915.enable_guc_loading = HAS_GUC_UCODE(dev_priv);
if (i915.enable_guc_submission < 0)
i915.enable_guc_submission = HAS_GUC_SCHED(dev_priv);
/* Can't enable guc submission without guc loaded */
if (!i915.enable_guc_loading)
i915.enable_guc_submission = 0;
}
/* Verify firmware version */
if (i915.enable_guc_loading) { if (i915.enable_guc_loading) {
if (HAS_HUC_UCODE(dev_priv)) if (HAS_HUC_UCODE(dev_priv))
intel_huc_select_fw(&dev_priv->huc); intel_huc_select_fw(&dev_priv->huc);
...@@ -74,6 +71,14 @@ void intel_uc_sanitize_options(struct drm_i915_private *dev_priv) ...@@ -74,6 +71,14 @@ void intel_uc_sanitize_options(struct drm_i915_private *dev_priv)
if (intel_guc_select_fw(&dev_priv->guc)) if (intel_guc_select_fw(&dev_priv->guc))
i915.enable_guc_loading = 0; i915.enable_guc_loading = 0;
} }
/* Can't enable guc submission without guc loaded */
if (!i915.enable_guc_loading)
i915.enable_guc_submission = 0;
/* A negative value means "use platform default" */
if (i915.enable_guc_submission < 0)
i915.enable_guc_submission = HAS_GUC_SCHED(dev_priv);
} }
void intel_uc_init_early(struct drm_i915_private *dev_priv) void intel_uc_init_early(struct drm_i915_private *dev_priv)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment