Skip to content

Commit

Permalink
drm/i915/dmc: abstract GPU error state dump
Browse files Browse the repository at this point in the history
Only intel_dmc.c should be accessing dmc details directly.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
  • Loading branch information
jnikula authored and intel-lab-lkp committed Mar 21, 2022
1 parent 7ef2e68 commit 1e23e4b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
15 changes: 15 additions & 0 deletions drivers/gpu/drm/i915/display/intel_dmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions drivers/gpu/drm/i915/display/intel_dmc.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include "intel_wakeref.h"
#include <linux/workqueue.h>

struct drm_i915_error_state_buf;
struct drm_i915_private;

#define DMC_VERSION(major, minor) ((major) << 16 | (minor))
Expand Down Expand Up @@ -55,6 +56,8 @@ void intel_dmc_ucode_suspend(struct drm_i915_private *i915);
void intel_dmc_ucode_resume(struct drm_i915_private *i915);
bool intel_dmc_has_payload(struct drm_i915_private *i915);
void intel_dmc_debugfs_register(struct drm_i915_private *i915);
void intel_dmc_print_error_state(struct drm_i915_error_state_buf *m,
struct drm_i915_private *i915);

void assert_dmc_loaded(struct drm_i915_private *i915);

Expand Down
10 changes: 1 addition & 9 deletions drivers/gpu/drm/i915/i915_gpu_error.c
Original file line number Diff line number Diff line change
Expand Up @@ -825,15 +825,7 @@ static void __err_print_to_sgl(struct drm_i915_error_state_buf *m,

err_printf(m, "IOMMU enabled?: %d\n", error->iommu);

if (HAS_DMC(m->i915)) {
struct intel_dmc *dmc = &m->i915->dmc;

err_printf(m, "DMC loaded: %s\n",
str_yes_no(intel_dmc_has_payload(m->i915) != 0));
err_printf(m, "DMC fw version: %d.%d\n",
DMC_VERSION_MAJOR(dmc->version),
DMC_VERSION_MINOR(dmc->version));
}
intel_dmc_print_error_state(m, m->i915);

err_printf(m, "RPM wakelock: %s\n", str_yes_no(error->wakelock));
err_printf(m, "PM suspended: %s\n", str_yes_no(error->suspended));
Expand Down

0 comments on commit 1e23e4b

Please sign in to comment.