aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2012-08-15 14:23:25 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-08-17 04:10:05 -0400
commit523313092abffb21bfe7cd8d37615402b2228850 (patch)
tree43317f87bd890168cb8fd110616280cf11e81dd1 /drivers/gpu/drm/i915/intel_display.c
parent33faad195eec0c72fec84e638623ea25652eed72 (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.c12
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
7262struct intel_display_error_state * 7262struct 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);