summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/display/intel_dmc.c
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2022-03-30 14:34:15 +0300
committerJani Nikula <jani.nikula@intel.com>2022-04-01 10:06:22 +0300
commit5efde05f6af1c5dd1abf63cd26c004bdfb4bbb5c (patch)
tree74b222b4933f41b30564e0c121cd76a373cabb71 /drivers/gpu/drm/i915/display/intel_dmc.c
parentbc58192a9b59fa75d5666bed9cc1b45fa49c6e0b (diff)
downloadlinux-stable-5efde05f6af1c5dd1abf63cd26c004bdfb4bbb5c.tar.gz
linux-stable-5efde05f6af1c5dd1abf63cd26c004bdfb4bbb5c.tar.bz2
linux-stable-5efde05f6af1c5dd1abf63cd26c004bdfb4bbb5c.zip
drm/i915/dmc: abstract GPU error state dump
Only intel_dmc.c should be accessing dmc details directly. Need to add an i915_error_printf() stub for CONFIG_DRM_I915_CAPTURE_ERROR=n. v2: Add the stub (kernel test robot <lkp@intel.com>) Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> # v1 Link: https://patchwork.freedesktop.org/patch/msgid/20220330113417.220964-1-jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_dmc.c')
-rw-r--r--drivers/gpu/drm/i915/display/intel_dmc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 5de13f978e57..f0eb3de8de60 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -811,6 +811,21 @@ void intel_dmc_ucode_fini(struct drm_i915_private *dev_priv)
kfree(dev_priv->dmc.dmc_info[id].payload);
}
+void intel_dmc_print_error_state(struct drm_i915_error_state_buf *m,
+ struct drm_i915_private *i915)
+{
+ struct intel_dmc *dmc = &i915->dmc;
+
+ if (!HAS_DMC(i915))
+ return;
+
+ i915_error_printf(m, "DMC loaded: %s\n",
+ str_yes_no(intel_dmc_has_payload(i915)));
+ i915_error_printf(m, "DMC fw version: %d.%d\n",
+ DMC_VERSION_MAJOR(dmc->version),
+ DMC_VERSION_MINOR(dmc->version));
+}
+
static int intel_dmc_debugfs_status_show(struct seq_file *m, void *unused)
{
struct drm_i915_private *i915 = m->private;