summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_guc_loader.c
diff options
context:
space:
mode:
authorArkadiusz Hiler <arkadiusz.hiler@intel.com>2017-03-14 15:28:13 +0100
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>2017-03-15 14:26:30 +0200
commitb551f610b36e3f04d6e583cd732cb8805fe86b87 (patch)
treeac355ab0014e27a600ce91897bb4e629f9da8ffb /drivers/gpu/drm/i915/intel_guc_loader.c
parent8fc2a4e427991433ea6358117fdbcc07494ff8c5 (diff)
downloadop-kernel-dev-b551f610b36e3f04d6e583cd732cb8805fe86b87.zip
op-kernel-dev-b551f610b36e3f04d6e583cd732cb8805fe86b87.tar.gz
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.c14
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 d731f68..f8c9e31 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;
}
/**
OpenPOWER on IntegriCloud