[PATCH 03/26] drm/i915: Include GuC fw version in error state
Michel Thierry
michel.thierry at intel.com
Mon Apr 24 20:42:41 UTC 2017
There was no way to check if the platform is running the latest
firmware.
v2: use HAS_GUC and intel_guc* (Michal)
capture before reset (Chris)
v3: if version is 0, the fw was not loaded.
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Michel Thierry <michel.thierry at intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/i915_gpu_error.c | 15 +++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8189d856df95..8ee58e5eb0a6 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -961,6 +961,7 @@ struct i915_gpu_state {
/* Firmware load state */
u32 dmc_version;
+ u32 guc_version;
u32 nfence;
u64 fence[I915_MAX_NUM_FENCES];
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 54f0fd30d4a0..951a8a42850c 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -629,6 +629,13 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m,
CSR_VERSION_MINOR(error->dmc_version));
}
+ if (HAS_GUC(dev_priv)) {
+ err_printf(m, "GuC loaded: %s\n", yesno(error->guc_version));
+ err_printf(m, "GuC fw version: %d.%d\n",
+ error->guc_version >> 16,
+ error->guc_version & 0xffff);
+ }
+
err_printf(m, "GT awake: %s\n", yesno(error->awake));
err_printf(m, "RPM wakelock: %s\n", yesno(error->wakelock));
err_printf(m, "PM suspended: %s\n", yesno(error->suspended));
@@ -1632,6 +1639,14 @@ static void i915_capture_fw_state(struct drm_i915_private *dev_priv,
error->dmc_version = csr->version;
}
+
+ if (HAS_GUC(dev_priv)) {
+ struct intel_guc *guc = &dev_priv->guc;
+
+ error->guc_version =
+ (guc->fw.major_ver_found << 16 |
+ guc->fw.minor_ver_found);
+ }
}
static void i915_error_capture_msg(struct drm_i915_private *dev_priv,
--
2.11.0
More information about the Intel-gfx-trybot
mailing list