Message ID | 1345055005-23850-1-git-send-email-damien.lespiau@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 15 Aug 2012 19:23:25 +0100, Damien Lespiau <damien.lespiau@gmail.com> wrote: > From: Damien Lespiau <damien.lespiau@intel.com> > > 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> I guess next on your list will be adding some of the PCH register states, along with a list of active encoders / connectors etc. -Chris
On Wed, Aug 15, 2012 at 07:42:15PM +0100, Chris Wilson wrote: > On Wed, 15 Aug 2012 19:23:25 +0100, Damien Lespiau <damien.lespiau@gmail.com> wrote: > > From: Damien Lespiau <damien.lespiau@intel.com> > > > > 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> Queued for -next, thanks for the patch. > I guess next on your list will be adding some of the PCH register > states, along with a list of active encoders / connectors etc. I'm not sure that's worth it, at least usually the gt doesn't fall over when we anger the pch ... Simply grabbing a register dump for interesting configurations and comparing them worksforme. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 1d24d55..28e463e 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -7470,7 +7470,7 @@ struct intel_display_error_state { u32 position; u32 base; u32 size; - } cursor[2]; + } cursor[I915_MAX_PIPES]; struct intel_pipe_error_state { u32 conf; @@ -7482,7 +7482,7 @@ struct intel_display_error_state { u32 vtotal; u32 vblank; u32 vsync; - } pipe[2]; + } pipe[I915_MAX_PIPES]; struct intel_plane_error_state { u32 control; @@ -7492,7 +7492,7 @@ struct intel_display_error_state { u32 addr; u32 surface; u32 tile_offset; - } plane[2]; + } plane[I915_MAX_PIPES]; }; struct intel_display_error_state * @@ -7506,7 +7506,7 @@ intel_display_capture_error_state(struct drm_device *dev) if (error == NULL) return NULL; - for (i = 0; i < 2; i++) { + for_each_pipe(i) { error->cursor[i].control = I915_READ(CURCNTR(i)); error->cursor[i].position = I915_READ(CURPOS(i)); error->cursor[i].base = I915_READ(CURBASE(i)); @@ -7539,9 +7539,11 @@ intel_display_print_error_state(struct seq_file *m, struct drm_device *dev, struct intel_display_error_state *error) { + drm_i915_private_t *dev_priv = dev->dev_private; int i; - for (i = 0; i < 2; i++) { + seq_printf(m, "Num Pipes: %d\n", dev_priv->num_pipe); + for_each_pipe(i) { seq_printf(m, "Pipe [%d]:\n", i); seq_printf(m, " CONF: %08x\n", error->pipe[i].conf); seq_printf(m, " SRC: %08x\n", error->pipe[i].source);