drm/i915/uc: Fetch uC firmware in init_early

We were fetching uC firmwares in separate uc_init_fw step, while
there is no reason why we can't fetch them during init_early.
This will also simplify upcoming patches, as size of the firmware
may be used for register initialization.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180323123451.59244-2-michal.wajdeczko@intel.com
Este commit está contenido en:
Michal Wajdeczko
2018-03-23 12:34:50 +00:00
cometido por Chris Wilson
padre a0de908d44
commit 8c650aefb8
Se han modificado 5 ficheros con 28 adiciones y 36 borrados

Ver fichero

@@ -162,36 +162,35 @@ static void sanitize_options_early(struct drm_i915_private *dev_priv)
GEM_BUG_ON(i915_modparams.guc_log_level < 0);
}
void intel_uc_init_early(struct drm_i915_private *dev_priv)
void intel_uc_init_early(struct drm_i915_private *i915)
{
intel_guc_init_early(&dev_priv->guc);
intel_huc_init_early(&dev_priv->huc);
struct intel_guc *guc = &i915->guc;
struct intel_huc *huc = &i915->huc;
sanitize_options_early(dev_priv);
intel_guc_init_early(guc);
intel_huc_init_early(huc);
sanitize_options_early(i915);
if (USES_GUC(i915))
intel_uc_fw_fetch(i915, &guc->fw);
if (USES_HUC(i915))
intel_uc_fw_fetch(i915, &huc->fw);
}
void intel_uc_init_fw(struct drm_i915_private *dev_priv)
void intel_uc_cleanup_early(struct drm_i915_private *i915)
{
if (!USES_GUC(dev_priv))
return;
struct intel_guc *guc = &i915->guc;
struct intel_huc *huc = &i915->huc;
if (USES_HUC(dev_priv))
intel_uc_fw_fetch(dev_priv, &dev_priv->huc.fw);
if (USES_HUC(i915))
intel_uc_fw_fini(&huc->fw);
intel_uc_fw_fetch(dev_priv, &dev_priv->guc.fw);
}
if (USES_GUC(i915))
intel_uc_fw_fini(&guc->fw);
void intel_uc_fini_fw(struct drm_i915_private *dev_priv)
{
if (!USES_GUC(dev_priv))
return;
intel_uc_fw_fini(&dev_priv->guc.fw);
if (USES_HUC(dev_priv))
intel_uc_fw_fini(&dev_priv->huc.fw);
guc_free_load_err_log(&dev_priv->guc);
guc_free_load_err_log(guc);
}
/**