Commit fc32de93 authored by Dave Gordon's avatar Dave Gordon Committed by Tvrtko Ursulin

drm/i915/guc: revisit GuC loader message levels

Some downgraded from DRM_ERROR() to DRM_WARN() or DRM_NOTE(),
a few upgraded from DRM_INFO() to DRM_NOTE() or DRM_WARN(),
and one eliminated completely.

v2: different permutation of levels :)
v3: convert a couple of "this shouldn't happen" messages to WARN()
Signed-off-by: default avatarDave Gordon <david.s.gordon@intel.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
parent 535b2f5e
...@@ -152,12 +152,14 @@ static u32 get_gttype(struct drm_i915_private *dev_priv) ...@@ -152,12 +152,14 @@ static u32 get_gttype(struct drm_i915_private *dev_priv)
static u32 get_core_family(struct drm_i915_private *dev_priv) static u32 get_core_family(struct drm_i915_private *dev_priv)
{ {
switch (INTEL_INFO(dev_priv)->gen) { u32 gen = INTEL_GEN(dev_priv);
switch (gen) {
case 9: case 9:
return GFXCORE_FAMILY_GEN9; return GFXCORE_FAMILY_GEN9;
default: default:
DRM_ERROR("GUC: unsupported core family\n"); WARN(1, "GEN%d does not support GuC operation!\n", gen);
return GFXCORE_FAMILY_UNKNOWN; return GFXCORE_FAMILY_UNKNOWN;
} }
} }
...@@ -447,7 +449,7 @@ int intel_guc_setup(struct drm_device *dev) ...@@ -447,7 +449,7 @@ int intel_guc_setup(struct drm_device *dev)
goto fail; goto fail;
} else if (*fw_path == '\0') { } else if (*fw_path == '\0') {
/* Device has a GuC but we don't know what f/w to load? */ /* Device has a GuC but we don't know what f/w to load? */
DRM_INFO("No GuC firmware known for this platform\n"); WARN(1, "No GuC firmware known for this platform!\n");
err = -ENODEV; err = -ENODEV;
goto fail; goto fail;
} }
...@@ -485,10 +487,8 @@ int intel_guc_setup(struct drm_device *dev) ...@@ -485,10 +487,8 @@ int intel_guc_setup(struct drm_device *dev)
* that the state and timing are fairly predictable * that the state and timing are fairly predictable
*/ */
err = i915_reset_guc(dev_priv); err = i915_reset_guc(dev_priv);
if (err) { if (err)
DRM_ERROR("GuC reset failed: %d\n", err);
goto fail; goto fail;
}
err = guc_ucode_xfer(dev_priv); err = guc_ucode_xfer(dev_priv);
if (!err) if (!err)
...@@ -546,15 +546,15 @@ int intel_guc_setup(struct drm_device *dev) ...@@ -546,15 +546,15 @@ int intel_guc_setup(struct drm_device *dev)
else if (err == 0) else if (err == 0)
DRM_INFO("GuC firmware load skipped\n"); DRM_INFO("GuC firmware load skipped\n");
else if (ret != -EIO) else if (ret != -EIO)
DRM_INFO("GuC firmware load failed: %d\n", err); DRM_NOTE("GuC firmware load failed: %d\n", err);
else else
DRM_ERROR("GuC firmware load failed: %d\n", err); DRM_WARN("GuC firmware load failed: %d\n", err);
if (i915.enable_guc_submission) { if (i915.enable_guc_submission) {
if (fw_path == NULL) if (fw_path == NULL)
DRM_INFO("GuC submission without firmware not supported\n"); DRM_INFO("GuC submission without firmware not supported\n");
if (ret == 0) if (ret == 0)
DRM_INFO("Falling back from GuC submission to execlist mode\n"); DRM_NOTE("Falling back from GuC submission to execlist mode\n");
else else
DRM_ERROR("GuC init failed: %d\n", ret); DRM_ERROR("GuC init failed: %d\n", ret);
} }
...@@ -586,7 +586,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw) ...@@ -586,7 +586,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
/* Check the size of the blob before examining buffer contents */ /* Check the size of the blob before examining buffer contents */
if (fw->size < sizeof(struct guc_css_header)) { if (fw->size < sizeof(struct guc_css_header)) {
DRM_ERROR("Firmware header is missing\n"); DRM_NOTE("Firmware header is missing\n");
goto fail; goto fail;
} }
...@@ -598,7 +598,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw) ...@@ -598,7 +598,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
css->key_size_dw - css->exponent_size_dw) * sizeof(u32); css->key_size_dw - css->exponent_size_dw) * sizeof(u32);
if (guc_fw->header_size != sizeof(struct guc_css_header)) { if (guc_fw->header_size != sizeof(struct guc_css_header)) {
DRM_ERROR("CSS header definition mismatch\n"); DRM_NOTE("CSS header definition mismatch\n");
goto fail; goto fail;
} }
...@@ -608,7 +608,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw) ...@@ -608,7 +608,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
/* now RSA */ /* now RSA */
if (css->key_size_dw != UOS_RSA_SCRATCH_MAX_COUNT) { if (css->key_size_dw != UOS_RSA_SCRATCH_MAX_COUNT) {
DRM_ERROR("RSA key size is bad\n"); DRM_NOTE("RSA key size is bad\n");
goto fail; goto fail;
} }
guc_fw->rsa_offset = guc_fw->ucode_offset + guc_fw->ucode_size; guc_fw->rsa_offset = guc_fw->ucode_offset + guc_fw->ucode_size;
...@@ -617,14 +617,14 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw) ...@@ -617,14 +617,14 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
/* At least, it should have header, uCode and RSA. Size of all three. */ /* At least, it should have header, uCode and RSA. Size of all three. */
size = guc_fw->header_size + guc_fw->ucode_size + guc_fw->rsa_size; size = guc_fw->header_size + guc_fw->ucode_size + guc_fw->rsa_size;
if (fw->size < size) { if (fw->size < size) {
DRM_ERROR("Missing firmware components\n"); DRM_NOTE("Missing firmware components\n");
goto fail; goto fail;
} }
/* Header and uCode will be loaded to WOPCM. Size of the two. */ /* Header and uCode will be loaded to WOPCM. Size of the two. */
size = guc_fw->header_size + guc_fw->ucode_size; size = guc_fw->header_size + guc_fw->ucode_size;
if (size > guc_wopcm_size(to_i915(dev))) { if (size > guc_wopcm_size(to_i915(dev))) {
DRM_ERROR("Firmware is too large to fit in WOPCM\n"); DRM_NOTE("Firmware is too large to fit in WOPCM\n");
goto fail; goto fail;
} }
...@@ -639,7 +639,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw) ...@@ -639,7 +639,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
if (guc_fw->guc_fw_major_found != guc_fw->guc_fw_major_wanted || if (guc_fw->guc_fw_major_found != guc_fw->guc_fw_major_wanted ||
guc_fw->guc_fw_minor_found < guc_fw->guc_fw_minor_wanted) { guc_fw->guc_fw_minor_found < guc_fw->guc_fw_minor_wanted) {
DRM_ERROR("GuC firmware version %d.%d, required %d.%d\n", DRM_NOTE("GuC firmware version %d.%d, required %d.%d\n",
guc_fw->guc_fw_major_found, guc_fw->guc_fw_minor_found, guc_fw->guc_fw_major_found, guc_fw->guc_fw_minor_found,
guc_fw->guc_fw_major_wanted, guc_fw->guc_fw_minor_wanted); guc_fw->guc_fw_major_wanted, guc_fw->guc_fw_minor_wanted);
err = -ENOEXEC; err = -ENOEXEC;
...@@ -669,10 +669,10 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw) ...@@ -669,10 +669,10 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
return; return;
fail: fail:
DRM_WARN("Failed to fetch valid GuC firmware from %s (error %d)\n",
guc_fw->guc_fw_path, err);
DRM_DEBUG_DRIVER("GuC fw fetch status FAIL; err %d, fw %p, obj %p\n", DRM_DEBUG_DRIVER("GuC fw fetch status FAIL; err %d, fw %p, obj %p\n",
err, fw, guc_fw->guc_fw_obj); err, fw, guc_fw->guc_fw_obj);
DRM_ERROR("Failed to fetch GuC firmware from %s (error %d)\n",
guc_fw->guc_fw_path, err);
mutex_lock(&dev->struct_mutex); mutex_lock(&dev->struct_mutex);
obj = guc_fw->guc_fw_obj; obj = guc_fw->guc_fw_obj;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment