[Intel-gfx] [PATCH v2 6/7] drm/i915/huc: Load HuC only if requested
Sagar Arun Kamble
sagar.a.kamble at intel.com
Fri Dec 1 16:39:38 UTC 2017
On 12/1/2017 4:03 PM, Michal Wajdeczko wrote:
> Our new "enable_guc" modparam allows to control whenever HuC
> should be loaded. However existing code will try load and
> authenticate HuC always when we use the GuC. This patch is
> trying to enforce modparam selection.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble at intel.com>
<snip>
> int intel_uc_init_hw(struct drm_i915_private *dev_priv)
> {
> struct intel_guc *guc = &dev_priv->guc;
> + struct intel_huc *huc = &dev_priv->huc;
> int ret, attempts;
>
> if (!USES_GUC(dev_priv))
> @@ -220,7 +221,12 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
> if (ret)
> goto err_submission;
>
> - intel_huc_init_hw(&dev_priv->huc);
> + if (USES_HUC(dev_priv)) {
> + ret = intel_huc_init_hw(huc);
> + if (ret)
> + break;
this break should be "goto err_submission" as GuC is still not ready.
looks like user has to be very careful with param now that HuC failure
can block GuC tasks too.
> + }
> +
> intel_guc_init_params(guc);
> ret = intel_guc_fw_upload(guc);
> if (ret == 0 || ret != -EAGAIN)
> @@ -238,7 +244,12 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
> if (ret)
> goto err_log_capture;
>
> - intel_huc_auth(&dev_priv->huc);
> + if (USES_HUC(dev_priv)) {
> + ret = intel_huc_auth(huc);
> + if (ret)
> + goto err_interrupts;
> + }
> +
> if (USES_GUC_SUBMISSION(dev_priv)) {
> if (i915_modparams.guc_log_level >= 0)
> gen9_enable_guc_interrupts(dev_priv);
> @@ -252,6 +263,8 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
> guc->fw.major_ver_found, guc->fw.minor_ver_found);
> dev_info(dev_priv->drm.dev, "GuC submission %s\n",
> enableddisabled(USES_GUC_SUBMISSION(dev_priv)));
> + dev_info(dev_priv->drm.dev, "HuC %s\n",
> + enableddisabled(USES_HUC(dev_priv)));
>
> return 0;
>
More information about the Intel-gfx
mailing list