diff options
author | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2017-03-14 15:28:13 +0100 |
---|---|---|
committer | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2017-03-15 14:26:30 +0200 |
commit | b551f610b36e3f04d6e583cd732cb8805fe86b87 (patch) | |
tree | ac355ab0014e27a600ce91897bb4e629f9da8ffb /drivers/gpu/drm/i915/intel_guc_loader.c | |
parent | 8fc2a4e427991433ea6358117fdbcc07494ff8c5 (diff) |
drm/i915/uc: Separate firmware selection and preparation
intel_{h,g}uc_init_fw selects correct firmware and then triggers it's
preparation (fetch + initial parsing).
This change separates out select steps, so those can be called by
the sanitize_options().
Then, during the init_fw(), we prepare the firmware if the firmware was
selected.
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_guc_loader.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_guc_loader.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c index d731f68fab9c..f8c9e3126074 100644 --- a/drivers/gpu/drm/i915/intel_guc_loader.c +++ b/drivers/gpu/drm/i915/intel_guc_loader.c @@ -393,15 +393,12 @@ int intel_guc_init_hw(struct intel_guc *guc) } /** - * intel_guc_init_fw() - select and prepare firmware for loading + * intel_guc_select_fw() - selects GuC firmware for loading * @guc: intel_guc struct * - * Called early during driver load, but after GEM is initialised. - * - * The firmware will be transferred to the GuC's memory later, - * when intel_guc_init_hw() is called. + * Return: zero when we know firmware, non-zero in other case */ -void intel_guc_init_fw(struct intel_guc *guc) +int intel_guc_select_fw(struct intel_guc *guc) { struct drm_i915_private *dev_priv = guc_to_i915(guc); @@ -424,11 +421,10 @@ void intel_guc_init_fw(struct intel_guc *guc) guc->fw.minor_ver_wanted = KBL_FW_MINOR; } else { DRM_ERROR("No GuC firmware known for platform with GuC!\n"); - i915.enable_guc_loading = 0; - return; + return -ENOENT; } - intel_uc_prepare_fw(dev_priv, &guc->fw); + return 0; } /** |