diff options
author | Damien Lespiau <damien.lespiau@intel.com> | 2012-08-15 14:23:25 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-08-17 04:10:05 -0400 |
commit | 523313092abffb21bfe7cd8d37615402b2228850 (patch) | |
tree | 43317f87bd890168cb8fd110616280cf11e81dd1 /drivers/gpu/drm/i915/intel_display.c | |
parent | 33faad195eec0c72fec84e638623ea25652eed72 (diff) |
drm/i915: Don't hardcode the number of pipes in the error state dump
New-ish devices have 3 pipes, so let's not just hardcode 2 but use the
for_each_pipe() macro and make struct intel_display_error_state is big
enough.
V2: Also add the number of pipes emitted (Chris Wilson)
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index f55e024c6df9..7a1c19756884 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -7234,7 +7234,7 @@ struct intel_display_error_state { | |||
7234 | u32 position; | 7234 | u32 position; |
7235 | u32 base; | 7235 | u32 base; |
7236 | u32 size; | 7236 | u32 size; |
7237 | } cursor[2]; | 7237 | } cursor[I915_MAX_PIPES]; |
7238 | 7238 | ||
7239 | struct intel_pipe_error_state { | 7239 | struct intel_pipe_error_state { |
7240 | u32 conf; | 7240 | u32 conf; |
@@ -7246,7 +7246,7 @@ struct intel_display_error_state { | |||
7246 | u32 vtotal; | 7246 | u32 vtotal; |
7247 | u32 vblank; | 7247 | u32 vblank; |
7248 | u32 vsync; | 7248 | u32 vsync; |
7249 | } pipe[2]; | 7249 | } pipe[I915_MAX_PIPES]; |
7250 | 7250 | ||
7251 | struct intel_plane_error_state { | 7251 | struct intel_plane_error_state { |
7252 | u32 control; | 7252 | u32 control; |
@@ -7256,7 +7256,7 @@ struct intel_display_error_state { | |||
7256 | u32 addr; | 7256 | u32 addr; |
7257 | u32 surface; | 7257 | u32 surface; |
7258 | u32 tile_offset; | 7258 | u32 tile_offset; |
7259 | } plane[2]; | 7259 | } plane[I915_MAX_PIPES]; |
7260 | }; | 7260 | }; |
7261 | 7261 | ||
7262 | struct intel_display_error_state * | 7262 | struct intel_display_error_state * |
@@ -7270,7 +7270,7 @@ intel_display_capture_error_state(struct drm_device *dev) | |||
7270 | if (error == NULL) | 7270 | if (error == NULL) |
7271 | return NULL; | 7271 | return NULL; |
7272 | 7272 | ||
7273 | for (i = 0; i < 2; i++) { | 7273 | for_each_pipe(i) { |
7274 | error->cursor[i].control = I915_READ(CURCNTR(i)); | 7274 | error->cursor[i].control = I915_READ(CURCNTR(i)); |
7275 | error->cursor[i].position = I915_READ(CURPOS(i)); | 7275 | error->cursor[i].position = I915_READ(CURPOS(i)); |
7276 | error->cursor[i].base = I915_READ(CURBASE(i)); | 7276 | error->cursor[i].base = I915_READ(CURBASE(i)); |
@@ -7303,9 +7303,11 @@ intel_display_print_error_state(struct seq_file *m, | |||
7303 | struct drm_device *dev, | 7303 | struct drm_device *dev, |
7304 | struct intel_display_error_state *error) | 7304 | struct intel_display_error_state *error) |
7305 | { | 7305 | { |
7306 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
7306 | int i; | 7307 | int i; |
7307 | 7308 | ||
7308 | for (i = 0; i < 2; i++) { | 7309 | seq_printf(m, "Num Pipes: %d\n", dev_priv->num_pipe); |
7310 | for_each_pipe(i) { | ||
7309 | seq_printf(m, "Pipe [%d]:\n", i); | 7311 | seq_printf(m, "Pipe [%d]:\n", i); |
7310 | seq_printf(m, " CONF: %08x\n", error->pipe[i].conf); | 7312 | seq_printf(m, " CONF: %08x\n", error->pipe[i].conf); |
7311 | seq_printf(m, " SRC: %08x\n", error->pipe[i].source); | 7313 | seq_printf(m, " SRC: %08x\n", error->pipe[i].source); |