aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_guc_loader.c
diff options
context:
space:
mode:
authorDave Gordon <david.s.gordon@intel.com>2016-06-07 09:14:49 +0100
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>2016-06-07 14:21:58 +0100
commite556f7c168c4eeaffad0e53e1c37c27c086d51c6 (patch)
tree483ccd5bb1b6523573f4447993866a3b54b8188e /drivers/gpu/drm/i915/intel_guc_loader.c
parentdrm/i915/gen9: Add WaVFEStateAfterPipeControlwithMediaStateClear (diff)
downloadlinux-dev-e556f7c168c4eeaffad0e53e1c37c27c086d51c6.tar.xz
linux-dev-e556f7c168c4eeaffad0e53e1c37c27c086d51c6.zip
drm/i915/guc: fix GuC loading/submission check
The last stage of the GuC loader also sanitises the GuC submission settings, so should be called unconditionally (even on platforms without a GuC) to ensure consistent settings; in particular, this prevents any attempt to use GuC submission on GuCless platforms! Also fix error path handling and clarify DRM_INFO fallback message. Signed-off-by: Dave Gordon <david.s.gordon@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_guc_loader.c')
-rw-r--r--drivers/gpu/drm/i915/intel_guc_loader.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c
index f2b88c7209cb..4e34c2ea4bf4 100644
--- a/drivers/gpu/drm/i915/intel_guc_loader.c
+++ b/drivers/gpu/drm/i915/intel_guc_loader.c
@@ -425,9 +425,13 @@ int intel_guc_setup(struct drm_device *dev)
if (!i915.enable_guc_loading) {
err = 0;
goto fail;
- } else if (fw_path == NULL || *fw_path == '\0') {
- if (*fw_path == '\0')
- DRM_INFO("No GuC firmware known for this platform\n");
+ } else if (fw_path == NULL) {
+ /* Device is known to have no uCode (e.g. no GuC) */
+ err = -ENXIO;
+ goto fail;
+ } else if (*fw_path == '\0') {
+ /* Device has a GuC but we don't know what f/w to load? */
+ DRM_INFO("No GuC firmware known for this platform\n");
err = -ENODEV;
goto fail;
}
@@ -535,7 +539,7 @@ fail:
if (fw_path == NULL)
DRM_INFO("GuC submission without firmware not supported\n");
if (ret == 0)
- DRM_INFO("Falling back to execlist mode\n");
+ DRM_INFO("Falling back from GuC submission to execlist mode\n");
else
DRM_ERROR("GuC init failed: %d\n", ret);
}