[PATCH 12/13] drm/i915: Add post flush DSL readout for surflive debug

ville.syrjala
2012-11-16T14:22:24Z

drivers/gpu/drm/i915/i915_trace.h | 19 +++++++++++++++++++
drivers/gpu/drm/i915/intel_atomic.c | 4 ++++
2 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
index 754a204..fb35edd 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -16,6 +16,25 @@

/* object tracking */

+TRACE_EVENT(i915_atomic_flush,
+ TP_PROTO(u32 dsl0, u32 dsl1, u32 dsl2),
+ TP_ARGS(dsl0, dsl1, dsl2),
+
+ TP_STRUCT__entry(
+ __field(u32, dsl0)
+ __field(u32, dsl1)
+ __field(u32, dsl2)
+ ),
+ TP_fast_assign(
+ __entry->dsl0 = dsl0;
+ __entry->dsl1 = dsl1;
+ __entry->dsl2 = dsl2;
+ ),
+
+ TP_printk("dsl(0)=%u dsl(1)=%u dsl(2)=%u", __entry->dsl0, __entry->dsl1, __entry->dsl2)
+);
+
+
TRACE_EVENT(i915_atomic_flip,
TP_PROTO(bool sprite, int pipe, int action, u32 commit_surf, u32 commit_surflive, u32 surf, u32 surflive, u32 iir, u32 commit_dsl, u32 dsl, u32 flip_vbl_count, u32 vbl_count),
TP_ARGS(sprite, pipe, action, commit_surf, commit_surflive, surf, surflive, iir, commit_dsl, dsl, flip_vbl_count, vbl_count),
diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c
index c6531b0..945ba75 100644
--- a/drivers/gpu/drm/i915/intel_atomic.c
+++ b/drivers/gpu/drm/i915/intel_atomic.c
@@ -1855,6 +1855,10 @@ static void intel_flip_driver_flush(struct drm_flip_driver *driver)
/* Flush posted writes */
I915_READ(PIPEDSL(PIPE_A));

+#ifdef SURFLIVE_DEBUG
+ trace_i915_atomic_flush(I915_READ(PIPEDSL(0)), I915_READ(PIPEDSL(1)), I915_READ(PIPEDSL(2)));
+#endif
+
#ifdef FLIP_TIME_DEBUG
tend = ktime_get();
tdiff = ktime_sub(tend, tstart);