Commit 62d5d69b authored by Mika Kuoppala's avatar Mika Kuoppala Committed by Daniel Vetter

drm/i915: Add suspend count to error state

For example if we get bug reports with similar error states and
suspend count is always 1, that might lead the Sherlocks to
right general direction.
Suggested-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 48b031e3
...@@ -479,6 +479,8 @@ static int i915_drm_freeze(struct drm_device *dev) ...@@ -479,6 +479,8 @@ static int i915_drm_freeze(struct drm_device *dev)
intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED); intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED);
console_unlock(); console_unlock();
dev_priv->suspend_count++;
return 0; return 0;
} }
......
...@@ -305,6 +305,7 @@ struct drm_i915_error_state { ...@@ -305,6 +305,7 @@ struct drm_i915_error_state {
char error_msg[128]; char error_msg[128];
u32 reset_count; u32 reset_count;
u32 suspend_count;
/* Generic register state */ /* Generic register state */
u32 eir; u32 eir;
...@@ -1606,6 +1607,8 @@ typedef struct drm_i915_private { ...@@ -1606,6 +1607,8 @@ typedef struct drm_i915_private {
struct i915_dri1_state dri1; struct i915_dri1_state dri1;
/* Old ums support infrastructure, same warning applies. */ /* Old ums support infrastructure, same warning applies. */
struct i915_ums_state ums; struct i915_ums_state ums;
u32 suspend_count;
} drm_i915_private_t; } drm_i915_private_t;
static inline struct drm_i915_private *to_i915(const struct drm_device *dev) static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
......
...@@ -348,6 +348,7 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m, ...@@ -348,6 +348,7 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m,
} }
} }
err_printf(m, "Reset count: %u\n", error->reset_count); err_printf(m, "Reset count: %u\n", error->reset_count);
err_printf(m, "Suspend count: %u\n", error->suspend_count);
err_printf(m, "PCI ID: 0x%04x\n", dev->pdev->device); err_printf(m, "PCI ID: 0x%04x\n", dev->pdev->device);
err_printf(m, "EIR: 0x%08x\n", error->eir); err_printf(m, "EIR: 0x%08x\n", error->eir);
err_printf(m, "IER: 0x%08x\n", error->ier); err_printf(m, "IER: 0x%08x\n", error->ier);
...@@ -1125,6 +1126,7 @@ static void i915_capture_gen_state(struct drm_i915_private *dev_priv, ...@@ -1125,6 +1126,7 @@ static void i915_capture_gen_state(struct drm_i915_private *dev_priv,
struct drm_i915_error_state *error) struct drm_i915_error_state *error)
{ {
error->reset_count = i915_reset_count(&dev_priv->gpu_error); error->reset_count = i915_reset_count(&dev_priv->gpu_error);
error->suspend_count = dev_priv->suspend_count;
} }
/** /**
......
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