Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split
@ 2021-12-08 11:05 Jani Nikula
  2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 1/2] drm/i915/trace: clean up boilerplate organization Jani Nikula
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Jani Nikula @ 2021-12-08 11:05 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

v3 of https://patchwork.freedesktop.org/series/97106/

Jani Nikula (2):
  drm/i915/trace: clean up boilerplate organization
  drm/i915/trace: split out display trace to a separate file

 drivers/gpu/drm/i915/Makefile                 |   1 +
 drivers/gpu/drm/i915/display/g4x_dp.c         |   1 +
 drivers/gpu/drm/i915/display/g4x_hdmi.c       |   1 +
 .../gpu/drm/i915/display/intel_atomic_plane.c |   5 +-
 drivers/gpu/drm/i915/display/intel_audio.c    |   1 +
 drivers/gpu/drm/i915/display/intel_cdclk.c    |   1 +
 drivers/gpu/drm/i915/display/intel_crtc.c     |   4 +-
 .../drm/i915/display/intel_display_trace.c    |   9 +
 .../drm/i915/display/intel_display_trace.h    | 587 ++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_dp.c       |   1 +
 drivers/gpu/drm/i915/display/intel_fbc.c      |   2 +-
 drivers/gpu/drm/i915/display/intel_fdi.c      |   1 +
 .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
 .../gpu/drm/i915/display/intel_frontbuffer.c  |   7 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |   4 +-
 drivers/gpu/drm/i915/display/intel_tv.c       |   1 +
 drivers/gpu/drm/i915/display/intel_vdsc.c     |   4 +-
 drivers/gpu/drm/i915/i915_debugfs.c           |   1 -
 drivers/gpu/drm/i915/i915_driver.c            |   1 -
 drivers/gpu/drm/i915/i915_irq.c               |   2 +-
 drivers/gpu/drm/i915/i915_trace.h             | 583 +----------------
 drivers/gpu/drm/i915/intel_pm.c               |   2 +-
 22 files changed, 627 insertions(+), 594 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.h

-- 
2.30.2


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH v3 1/2] drm/i915/trace: clean up boilerplate organization
  2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
@ 2021-12-08 11:05 ` Jani Nikula
  2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file Jani Nikula
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2021-12-08 11:05 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Follow the style that seems to be prevalent in kernel for undef and
define of TRACE_SYSTEM, TRACE_INCLUDE_PATH, and TRACE_INCLUDE_FILE.

There should be no changes to tracepoints.

v2: Keep TRACE_INCLUDE_PATH relative to define_trace.h (Chris)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_trace.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
index 185eaa49f74e..a07bed5333cc 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -1,4 +1,8 @@
 /* SPDX-License-Identifier: GPL-2.0 */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM i915
+
 #if !defined(_I915_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
 #define _I915_TRACE_H_
 
@@ -15,10 +19,6 @@
 #include "i915_drv.h"
 #include "i915_irq.h"
 
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM i915
-#define TRACE_INCLUDE_FILE i915_trace
-
 /* watermark/fifo updates */
 
 TRACE_EVENT(intel_pipe_enable,
@@ -1337,5 +1337,7 @@ DEFINE_EVENT(i915_context, i915_context_free,
 
 /* This part must be outside protection */
 #undef TRACE_INCLUDE_PATH
+#undef TRACE_INCLUDE_FILE
 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915
+#define TRACE_INCLUDE_FILE i915_trace
 #include <trace/define_trace.h>
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file
  2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
  2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 1/2] drm/i915/trace: clean up boilerplate organization Jani Nikula
@ 2021-12-08 11:05 ` Jani Nikula
  2021-12-08 16:03   ` Lucas De Marchi
  2021-12-08 13:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: trace display split Patchwork
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Jani Nikula @ 2021-12-08 11:05 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Add display/intel_display_trace.[ch] for defining display
tracepoints. The main goal is to reduce cross-includes between gem and
display. It would be possible split up tracing even further, but that
would lead to more boilerplate.

We end up having to include intel_crtc.h in a few places because it was
pulled in implicitly via intel_de.h -> i915_trace.h -> intel_crtc.h, and
that's no longer the case.

There should be no changes to tracepoints.

v3:
- Rebase

v2:
- Define TRACE_INCLUDE_PATH relative to define_trace.h (Chris)
- Remove useless comments (Ville)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/Makefile                 |   1 +
 drivers/gpu/drm/i915/display/g4x_dp.c         |   1 +
 drivers/gpu/drm/i915/display/g4x_hdmi.c       |   1 +
 .../gpu/drm/i915/display/intel_atomic_plane.c |   5 +-
 drivers/gpu/drm/i915/display/intel_audio.c    |   1 +
 drivers/gpu/drm/i915/display/intel_cdclk.c    |   1 +
 drivers/gpu/drm/i915/display/intel_crtc.c     |   4 +-
 .../drm/i915/display/intel_display_trace.c    |   9 +
 .../drm/i915/display/intel_display_trace.h    | 587 ++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_dp.c       |   1 +
 drivers/gpu/drm/i915/display/intel_fbc.c      |   2 +-
 drivers/gpu/drm/i915/display/intel_fdi.c      |   1 +
 .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
 .../gpu/drm/i915/display/intel_frontbuffer.c  |   7 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |   4 +-
 drivers/gpu/drm/i915/display/intel_tv.c       |   1 +
 drivers/gpu/drm/i915/display/intel_vdsc.c     |   4 +-
 drivers/gpu/drm/i915/i915_debugfs.c           |   1 -
 drivers/gpu/drm/i915/i915_driver.c            |   1 -
 drivers/gpu/drm/i915/i915_irq.c               |   2 +-
 drivers/gpu/drm/i915/i915_trace.h             | 573 -----------------
 drivers/gpu/drm/i915/intel_pm.c               |   2 +-
 22 files changed, 621 insertions(+), 590 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 3b5857da4123..6ddd2d2bbaaf 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -259,6 +259,7 @@ i915-y += \
 	display/intel_crt.o \
 	display/intel_ddi.o \
 	display/intel_ddi_buf_trans.o \
+	display/intel_display_trace.o \
 	display/intel_dp.o \
 	display/intel_dp_aux.o \
 	display/intel_dp_aux_backlight.o \
diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
index dc41868d01ef..f37677df6ebf 100644
--- a/drivers/gpu/drm/i915/display/g4x_dp.c
+++ b/drivers/gpu/drm/i915/display/g4x_dp.c
@@ -9,6 +9,7 @@
 #include "intel_audio.h"
 #include "intel_backlight.h"
 #include "intel_connector.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_dp.h"
diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
index f5b4dd5b4275..06e00b1eaa7c 100644
--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
@@ -8,6 +8,7 @@
 #include "g4x_hdmi.h"
 #include "intel_audio.h"
 #include "intel_connector.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_dpio_phy.h"
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 27b8f99dd099..89005628cc3a 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -35,15 +35,16 @@
 #include <drm/drm_fourcc.h>
 #include <drm/drm_plane_helper.h>
 
-#include "i915_trace.h"
+#include "gt/intel_rps.h"
+
 #include "intel_atomic_plane.h"
 #include "intel_cdclk.h"
+#include "intel_display_trace.h"
 #include "intel_display_types.h"
 #include "intel_fb.h"
 #include "intel_fb_pin.h"
 #include "intel_pm.h"
 #include "intel_sprite.h"
-#include "gt/intel_rps.h"
 
 static void intel_plane_state_reset(struct intel_plane_state *plane_state,
 				    struct intel_plane *plane)
diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
index 03c3111ebdf0..991170c803e1 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -31,6 +31,7 @@
 #include "intel_atomic.h"
 #include "intel_audio.h"
 #include "intel_cdclk.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_lpe_audio.h"
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index a5569f21811c..639a64733f61 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -27,6 +27,7 @@
 #include "intel_audio.h"
 #include "intel_bw.h"
 #include "intel_cdclk.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_pcode.h"
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 43554b591904..6930fbedc97d 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -12,8 +12,8 @@
 #include <drm/drm_plane_helper.h>
 #include <drm/drm_vblank_work.h>
 
-#include "i915_trace.h"
 #include "i915_vgpu.h"
+#include "i9xx_plane.h"
 #include "icl_dsi.h"
 #include "intel_atomic.h"
 #include "intel_atomic_plane.h"
@@ -21,13 +21,13 @@
 #include "intel_crtc.h"
 #include "intel_cursor.h"
 #include "intel_display_debugfs.h"
+#include "intel_display_trace.h"
 #include "intel_display_types.h"
 #include "intel_dsi.h"
 #include "intel_pipe_crc.h"
 #include "intel_psr.h"
 #include "intel_sprite.h"
 #include "intel_vrr.h"
-#include "i9xx_plane.h"
 #include "skl_universal_plane.h"
 
 static void assert_vblank_disabled(struct drm_crtc *crtc)
diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.c b/drivers/gpu/drm/i915/display/intel_display_trace.c
new file mode 100644
index 000000000000..737979ada869
--- /dev/null
+++ b/drivers/gpu/drm/i915/display/intel_display_trace.c
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright © 2021 Intel Corporation
+ */
+
+#ifndef __CHECKER__
+#define CREATE_TRACE_POINTS
+#include "intel_display_trace.h"
+#endif
diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.h b/drivers/gpu/drm/i915/display/intel_display_trace.h
new file mode 100644
index 000000000000..4043e1276383
--- /dev/null
+++ b/drivers/gpu/drm/i915/display/intel_display_trace.h
@@ -0,0 +1,587 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright © 2021 Intel Corporation
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM i915
+
+#if !defined(__INTEL_DISPLAY_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
+#define __INTEL_DISPLAY_TRACE_H__
+
+#include <linux/types.h>
+#include <linux/tracepoint.h>
+
+#include "i915_drv.h"
+#include "intel_crtc.h"
+#include "intel_display_types.h"
+
+TRACE_EVENT(intel_pipe_enable,
+	    TP_PROTO(struct intel_crtc *crtc),
+	    TP_ARGS(crtc),
+
+	    TP_STRUCT__entry(
+			     __array(u32, frame, 3)
+			     __array(u32, scanline, 3)
+			     __field(enum pipe, pipe)
+			     ),
+	    TP_fast_assign(
+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+			   struct intel_crtc *it__;
+			   for_each_intel_crtc(&dev_priv->drm, it__) {
+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
+			   }
+			   __entry->pipe = crtc->pipe;
+			   ),
+
+	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe),
+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
+);
+
+TRACE_EVENT(intel_pipe_disable,
+	    TP_PROTO(struct intel_crtc *crtc),
+	    TP_ARGS(crtc),
+
+	    TP_STRUCT__entry(
+			     __array(u32, frame, 3)
+			     __array(u32, scanline, 3)
+			     __field(enum pipe, pipe)
+			     ),
+
+	    TP_fast_assign(
+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+			   struct intel_crtc *it__;
+			   for_each_intel_crtc(&dev_priv->drm, it__) {
+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
+			   }
+			   __entry->pipe = crtc->pipe;
+			   ),
+
+	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe),
+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
+);
+
+TRACE_EVENT(intel_pipe_crc,
+	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
+	    TP_ARGS(crtc, crcs),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __array(u32, crcs, 5)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
+		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
+		      __entry->crcs[3], __entry->crcs[4])
+);
+
+TRACE_EVENT(intel_cpu_fifo_underrun,
+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
+	    TP_ARGS(dev_priv, pipe),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+			   __entry->pipe = pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe),
+		      __entry->frame, __entry->scanline)
+);
+
+TRACE_EVENT(intel_pch_fifo_underrun,
+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
+	    TP_ARGS(dev_priv, pch_transcoder),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   enum pipe pipe = pch_transcoder;
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+			   __entry->pipe = pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe),
+		      __entry->frame, __entry->scanline)
+);
+
+TRACE_EVENT(intel_memory_cxsr,
+	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
+	    TP_ARGS(dev_priv, old, new),
+
+	    TP_STRUCT__entry(
+			     __array(u32, frame, 3)
+			     __array(u32, scanline, 3)
+			     __field(bool, old)
+			     __field(bool, new)
+			     ),
+
+	    TP_fast_assign(
+			   struct intel_crtc *crtc;
+			   for_each_intel_crtc(&dev_priv->drm, crtc) {
+				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
+				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
+			   }
+			   __entry->old = old;
+			   __entry->new = new;
+			   ),
+
+	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
+		      onoff(__entry->old), onoff(__entry->new),
+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
+);
+
+TRACE_EVENT(g4x_wm,
+	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
+	    TP_ARGS(crtc, wm),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __field(u16, primary)
+			     __field(u16, sprite)
+			     __field(u16, cursor)
+			     __field(u16, sr_plane)
+			     __field(u16, sr_cursor)
+			     __field(u16, sr_fbc)
+			     __field(u16, hpll_plane)
+			     __field(u16, hpll_cursor)
+			     __field(u16, hpll_fbc)
+			     __field(bool, cxsr)
+			     __field(bool, hpll)
+			     __field(bool, fbc)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
+			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
+			   __entry->sr_plane = wm->sr.plane;
+			   __entry->sr_cursor = wm->sr.cursor;
+			   __entry->sr_fbc = wm->sr.fbc;
+			   __entry->hpll_plane = wm->hpll.plane;
+			   __entry->hpll_cursor = wm->hpll.cursor;
+			   __entry->hpll_fbc = wm->hpll.fbc;
+			   __entry->cxsr = wm->cxsr;
+			   __entry->hpll = wm->hpll_en;
+			   __entry->fbc = wm->fbc_en;
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
+		      __entry->primary, __entry->sprite, __entry->cursor,
+		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
+		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
+		      yesno(__entry->fbc))
+);
+
+TRACE_EVENT(vlv_wm,
+	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
+	    TP_ARGS(crtc, wm),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __field(u32, level)
+			     __field(u32, cxsr)
+			     __field(u32, primary)
+			     __field(u32, sprite0)
+			     __field(u32, sprite1)
+			     __field(u32, cursor)
+			     __field(u32, sr_plane)
+			     __field(u32, sr_cursor)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   __entry->level = wm->level;
+			   __entry->cxsr = wm->cxsr;
+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
+			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
+			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
+			   __entry->sr_plane = wm->sr.plane;
+			   __entry->sr_cursor = wm->sr.cursor;
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
+		      pipe_name(__entry->pipe), __entry->frame,
+		      __entry->scanline, __entry->level, __entry->cxsr,
+		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
+		      __entry->sr_plane, __entry->sr_cursor)
+);
+
+TRACE_EVENT(vlv_fifo_size,
+	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
+	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __field(u32, sprite0_start)
+			     __field(u32, sprite1_start)
+			     __field(u32, fifo_size)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   __entry->sprite0_start = sprite0_start;
+			   __entry->sprite1_start = sprite1_start;
+			   __entry->fifo_size = fifo_size;
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
+		      pipe_name(__entry->pipe), __entry->frame,
+		      __entry->scanline, __entry->sprite0_start,
+		      __entry->sprite1_start, __entry->fifo_size)
+);
+
+TRACE_EVENT(intel_plane_update_noarm,
+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
+	    TP_ARGS(plane, crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __array(int, src, 4)
+			     __array(int, dst, 4)
+			     __string(name, plane->name)
+			     ),
+
+	    TP_fast_assign(
+			   __assign_str(name, plane->name);
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
+			   ),
+
+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
+		      pipe_name(__entry->pipe), __get_str(name),
+		      __entry->frame, __entry->scanline,
+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
+);
+
+TRACE_EVENT(intel_plane_update_arm,
+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
+	    TP_ARGS(plane, crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __array(int, src, 4)
+			     __array(int, dst, 4)
+			     __string(name, plane->name)
+			     ),
+
+	    TP_fast_assign(
+			   __assign_str(name, plane->name);
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
+			   ),
+
+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
+		      pipe_name(__entry->pipe), __get_str(name),
+		      __entry->frame, __entry->scanline,
+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
+);
+
+TRACE_EVENT(intel_plane_disable_arm,
+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
+	    TP_ARGS(plane, crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __string(name, plane->name)
+			     ),
+
+	    TP_fast_assign(
+			   __assign_str(name, plane->name);
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __get_str(name),
+		      __entry->frame, __entry->scanline)
+);
+
+TRACE_EVENT(intel_fbc_activate,
+	    TP_PROTO(struct intel_plane *plane),
+	    TP_ARGS(plane),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
+									 plane->pipe);
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
+);
+
+TRACE_EVENT(intel_fbc_deactivate,
+	    TP_PROTO(struct intel_plane *plane),
+	    TP_ARGS(plane),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
+									 plane->pipe);
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
+);
+
+TRACE_EVENT(intel_fbc_nuke,
+	    TP_PROTO(struct intel_plane *plane),
+	    TP_ARGS(plane),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
+									 plane->pipe);
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
+);
+
+TRACE_EVENT(intel_crtc_vblank_work_start,
+	    TP_PROTO(struct intel_crtc *crtc),
+	    TP_ARGS(crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __entry->frame,
+		       __entry->scanline)
+);
+
+TRACE_EVENT(intel_crtc_vblank_work_end,
+	    TP_PROTO(struct intel_crtc *crtc),
+	    TP_ARGS(crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __entry->frame,
+		       __entry->scanline)
+);
+
+TRACE_EVENT(intel_pipe_update_start,
+	    TP_PROTO(struct intel_crtc *crtc),
+	    TP_ARGS(crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __field(u32, min)
+			     __field(u32, max)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
+			   __entry->scanline = intel_get_crtc_scanline(crtc);
+			   __entry->min = crtc->debug.min_vbl;
+			   __entry->max = crtc->debug.max_vbl;
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
+		      pipe_name(__entry->pipe), __entry->frame,
+		       __entry->scanline, __entry->min, __entry->max)
+);
+
+TRACE_EVENT(intel_pipe_update_vblank_evaded,
+	    TP_PROTO(struct intel_crtc *crtc),
+	    TP_ARGS(crtc),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     __field(u32, min)
+			     __field(u32, max)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = crtc->debug.start_vbl_count;
+			   __entry->scanline = crtc->debug.scanline_start;
+			   __entry->min = crtc->debug.min_vbl;
+			   __entry->max = crtc->debug.max_vbl;
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
+		      pipe_name(__entry->pipe), __entry->frame,
+		       __entry->scanline, __entry->min, __entry->max)
+);
+
+TRACE_EVENT(intel_pipe_update_end,
+	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
+	    TP_ARGS(crtc, frame, scanline_end),
+
+	    TP_STRUCT__entry(
+			     __field(enum pipe, pipe)
+			     __field(u32, frame)
+			     __field(u32, scanline)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->pipe = crtc->pipe;
+			   __entry->frame = frame;
+			   __entry->scanline = scanline_end;
+			   ),
+
+	    TP_printk("pipe %c, frame=%u, scanline=%u",
+		      pipe_name(__entry->pipe), __entry->frame,
+		      __entry->scanline)
+);
+
+TRACE_EVENT(intel_frontbuffer_invalidate,
+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
+	    TP_ARGS(frontbuffer_bits, origin),
+
+	    TP_STRUCT__entry(
+			     __field(unsigned int, frontbuffer_bits)
+			     __field(unsigned int, origin)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->frontbuffer_bits = frontbuffer_bits;
+			   __entry->origin = origin;
+			   ),
+
+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
+		      __entry->frontbuffer_bits, __entry->origin)
+);
+
+TRACE_EVENT(intel_frontbuffer_flush,
+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
+	    TP_ARGS(frontbuffer_bits, origin),
+
+	    TP_STRUCT__entry(
+			     __field(unsigned int, frontbuffer_bits)
+			     __field(unsigned int, origin)
+			     ),
+
+	    TP_fast_assign(
+			   __entry->frontbuffer_bits = frontbuffer_bits;
+			   __entry->origin = origin;
+			   ),
+
+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
+		      __entry->frontbuffer_bits, __entry->origin)
+);
+
+#endif /* __INTEL_DISPLAY_TRACE_H__ */
+
+/* This part must be outside protection */
+#undef TRACE_INCLUDE_PATH
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
+#define TRACE_INCLUDE_FILE intel_display_trace
+#include <trace/define_trace.h>
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index a24831acb7da..b5e2508db1cf 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -47,6 +47,7 @@
 #include "intel_audio.h"
 #include "intel_backlight.h"
 #include "intel_connector.h"
+#include "intel_crtc.h"
 #include "intel_ddi.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 6efbef7a1fc0..8be01b93015f 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -41,10 +41,10 @@
 #include <drm/drm_fourcc.h>
 
 #include "i915_drv.h"
-#include "i915_trace.h"
 #include "i915_vgpu.h"
 #include "intel_cdclk.h"
 #include "intel_de.h"
+#include "intel_display_trace.h"
 #include "intel_display_types.h"
 #include "intel_fbc.h"
 #include "intel_frontbuffer.h"
diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c
index be77be626420..3d6e22923601 100644
--- a/drivers/gpu/drm/i915/display/intel_fdi.c
+++ b/drivers/gpu/drm/i915/display/intel_fdi.c
@@ -4,6 +4,7 @@
  */
 
 #include "intel_atomic.h"
+#include "intel_crtc.h"
 #include "intel_ddi.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
diff --git a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
index 76045ce84739..d636d21fa9ce 100644
--- a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
+++ b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
@@ -26,8 +26,8 @@
  */
 
 #include "i915_drv.h"
-#include "i915_trace.h"
 #include "intel_de.h"
+#include "intel_display_trace.h"
 #include "intel_display_types.h"
 #include "intel_fbc.h"
 #include "intel_fifo_underrun.h"
diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
index 0492446cd04a..791248f812aa 100644
--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
@@ -55,14 +55,13 @@
  * cancelled as soon as busyness is detected.
  */
 
-#include "display/intel_dp.h"
-
 #include "i915_drv.h"
-#include "i915_trace.h"
+#include "intel_display_trace.h"
 #include "intel_display_types.h"
+#include "intel_dp.h"
+#include "intel_drrs.h"
 #include "intel_fbc.h"
 #include "intel_frontbuffer.h"
-#include "intel_drrs.h"
 #include "intel_psr.h"
 
 /**
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
index 926f5cdc65fd..2357a1301f48 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -40,15 +40,15 @@
 #include <drm/drm_rect.h>
 
 #include "i915_drv.h"
-#include "i915_trace.h"
 #include "i915_vgpu.h"
+#include "i9xx_plane.h"
 #include "intel_atomic_plane.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_fb.h"
 #include "intel_frontbuffer.h"
 #include "intel_sprite.h"
-#include "i9xx_plane.h"
 #include "intel_vrr.h"
 
 int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
index fc77947dc3d5..8a39989b87ad 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -36,6 +36,7 @@
 
 #include "i915_drv.h"
 #include "intel_connector.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_hotplug.h"
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index c6851b0e0bed..1cc4170e6ec8 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -6,12 +6,14 @@
  *         Manasi Navare <manasi.d.navare@intel.com>
  */
 #include <linux/limits.h>
+
 #include "i915_drv.h"
+#include "intel_crtc.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_dsi.h"
-#include "intel_vdsc.h"
 #include "intel_qp_tables.h"
+#include "intel_vdsc.h"
 
 enum ROW_INDEX_BPP {
 	ROW_INDEX_6BPP = 0,
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 390d541f64ea..bafb902269de 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -48,7 +48,6 @@
 #include "i915_debugfs_params.h"
 #include "i915_irq.h"
 #include "i915_scheduler.h"
-#include "i915_trace.h"
 #include "intel_pm.h"
 
 static inline struct drm_i915_private *node_to_i915(struct drm_info_node *node)
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index bbc99fc5888f..e9125f14b3d1 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -82,7 +82,6 @@
 #include "i915_suspend.h"
 #include "i915_switcheroo.h"
 #include "i915_sysfs.h"
-#include "i915_trace.h"
 #include "i915_vgpu.h"
 #include "intel_dram.h"
 #include "intel_gvt.h"
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index d0be94456bd8..5b98fb0532b5 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -35,6 +35,7 @@
 #include <drm/drm_drv.h>
 
 #include "display/intel_de.h"
+#include "display/intel_display_trace.h"
 #include "display/intel_display_types.h"
 #include "display/intel_fifo_underrun.h"
 #include "display/intel_hotplug.h"
@@ -49,7 +50,6 @@
 
 #include "i915_drv.h"
 #include "i915_irq.h"
-#include "i915_trace.h"
 #include "intel_pm.h"
 
 /**
diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
index a07bed5333cc..37b5c9e9d260 100644
--- a/drivers/gpu/drm/i915/i915_trace.h
+++ b/drivers/gpu/drm/i915/i915_trace.h
@@ -12,584 +12,11 @@
 
 #include <drm/drm_drv.h>
 
-#include "display/intel_crtc.h"
-#include "display/intel_display_types.h"
 #include "gt/intel_engine.h"
 
 #include "i915_drv.h"
 #include "i915_irq.h"
 
-/* watermark/fifo updates */
-
-TRACE_EVENT(intel_pipe_enable,
-	    TP_PROTO(struct intel_crtc *crtc),
-	    TP_ARGS(crtc),
-
-	    TP_STRUCT__entry(
-			     __array(u32, frame, 3)
-			     __array(u32, scanline, 3)
-			     __field(enum pipe, pipe)
-			     ),
-	    TP_fast_assign(
-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-			   struct intel_crtc *it__;
-			   for_each_intel_crtc(&dev_priv->drm, it__) {
-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
-			   }
-			   __entry->pipe = crtc->pipe;
-			   ),
-
-	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe),
-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
-);
-
-TRACE_EVENT(intel_pipe_disable,
-	    TP_PROTO(struct intel_crtc *crtc),
-	    TP_ARGS(crtc),
-
-	    TP_STRUCT__entry(
-			     __array(u32, frame, 3)
-			     __array(u32, scanline, 3)
-			     __field(enum pipe, pipe)
-			     ),
-
-	    TP_fast_assign(
-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-			   struct intel_crtc *it__;
-			   for_each_intel_crtc(&dev_priv->drm, it__) {
-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
-			   }
-			   __entry->pipe = crtc->pipe;
-			   ),
-
-	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe),
-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
-);
-
-TRACE_EVENT(intel_pipe_crc,
-	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
-	    TP_ARGS(crtc, crcs),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __array(u32, crcs, 5)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
-		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
-		      __entry->crcs[3], __entry->crcs[4])
-);
-
-TRACE_EVENT(intel_cpu_fifo_underrun,
-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
-	    TP_ARGS(dev_priv, pipe),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
-			   __entry->pipe = pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe),
-		      __entry->frame, __entry->scanline)
-);
-
-TRACE_EVENT(intel_pch_fifo_underrun,
-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
-	    TP_ARGS(dev_priv, pch_transcoder),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   enum pipe pipe = pch_transcoder;
-			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
-			   __entry->pipe = pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe),
-		      __entry->frame, __entry->scanline)
-);
-
-TRACE_EVENT(intel_memory_cxsr,
-	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
-	    TP_ARGS(dev_priv, old, new),
-
-	    TP_STRUCT__entry(
-			     __array(u32, frame, 3)
-			     __array(u32, scanline, 3)
-			     __field(bool, old)
-			     __field(bool, new)
-			     ),
-
-	    TP_fast_assign(
-			   struct intel_crtc *crtc;
-			   for_each_intel_crtc(&dev_priv->drm, crtc) {
-				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
-				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
-			   }
-			   __entry->old = old;
-			   __entry->new = new;
-			   ),
-
-	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-		      onoff(__entry->old), onoff(__entry->new),
-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
-);
-
-TRACE_EVENT(g4x_wm,
-	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
-	    TP_ARGS(crtc, wm),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __field(u16, primary)
-			     __field(u16, sprite)
-			     __field(u16, cursor)
-			     __field(u16, sr_plane)
-			     __field(u16, sr_cursor)
-			     __field(u16, sr_fbc)
-			     __field(u16, hpll_plane)
-			     __field(u16, hpll_cursor)
-			     __field(u16, hpll_fbc)
-			     __field(bool, cxsr)
-			     __field(bool, hpll)
-			     __field(bool, fbc)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
-			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
-			   __entry->sr_plane = wm->sr.plane;
-			   __entry->sr_cursor = wm->sr.cursor;
-			   __entry->sr_fbc = wm->sr.fbc;
-			   __entry->hpll_plane = wm->hpll.plane;
-			   __entry->hpll_cursor = wm->hpll.cursor;
-			   __entry->hpll_fbc = wm->hpll.fbc;
-			   __entry->cxsr = wm->cxsr;
-			   __entry->hpll = wm->hpll_en;
-			   __entry->fbc = wm->fbc_en;
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
-		      __entry->primary, __entry->sprite, __entry->cursor,
-		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
-		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
-		      yesno(__entry->fbc))
-);
-
-TRACE_EVENT(vlv_wm,
-	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
-	    TP_ARGS(crtc, wm),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __field(u32, level)
-			     __field(u32, cxsr)
-			     __field(u32, primary)
-			     __field(u32, sprite0)
-			     __field(u32, sprite1)
-			     __field(u32, cursor)
-			     __field(u32, sr_plane)
-			     __field(u32, sr_cursor)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   __entry->level = wm->level;
-			   __entry->cxsr = wm->cxsr;
-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
-			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
-			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
-			   __entry->sr_plane = wm->sr.plane;
-			   __entry->sr_cursor = wm->sr.cursor;
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
-		      pipe_name(__entry->pipe), __entry->frame,
-		      __entry->scanline, __entry->level, __entry->cxsr,
-		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
-		      __entry->sr_plane, __entry->sr_cursor)
-);
-
-TRACE_EVENT(vlv_fifo_size,
-	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
-	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __field(u32, sprite0_start)
-			     __field(u32, sprite1_start)
-			     __field(u32, fifo_size)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   __entry->sprite0_start = sprite0_start;
-			   __entry->sprite1_start = sprite1_start;
-			   __entry->fifo_size = fifo_size;
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
-		      pipe_name(__entry->pipe), __entry->frame,
-		      __entry->scanline, __entry->sprite0_start,
-		      __entry->sprite1_start, __entry->fifo_size)
-);
-
-/* plane updates */
-
-TRACE_EVENT(intel_plane_update_noarm,
-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
-	    TP_ARGS(plane, crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __array(int, src, 4)
-			     __array(int, dst, 4)
-			     __string(name, plane->name)
-			     ),
-
-	    TP_fast_assign(
-			   __assign_str(name, plane->name);
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
-			   ),
-
-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
-		      pipe_name(__entry->pipe), __get_str(name),
-		      __entry->frame, __entry->scanline,
-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
-);
-
-TRACE_EVENT(intel_plane_update_arm,
-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
-	    TP_ARGS(plane, crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __array(int, src, 4)
-			     __array(int, dst, 4)
-			     __string(name, plane->name)
-			     ),
-
-	    TP_fast_assign(
-			   __assign_str(name, plane->name);
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
-			   ),
-
-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
-		      pipe_name(__entry->pipe), __get_str(name),
-		      __entry->frame, __entry->scanline,
-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
-);
-
-TRACE_EVENT(intel_plane_disable_arm,
-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
-	    TP_ARGS(plane, crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __string(name, plane->name)
-			     ),
-
-	    TP_fast_assign(
-			   __assign_str(name, plane->name);
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __get_str(name),
-		      __entry->frame, __entry->scanline)
-);
-
-/* fbc */
-
-TRACE_EVENT(intel_fbc_activate,
-	    TP_PROTO(struct intel_plane *plane),
-	    TP_ARGS(plane),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
-									 plane->pipe);
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
-);
-
-TRACE_EVENT(intel_fbc_deactivate,
-	    TP_PROTO(struct intel_plane *plane),
-	    TP_ARGS(plane),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
-									 plane->pipe);
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
-);
-
-TRACE_EVENT(intel_fbc_nuke,
-	    TP_PROTO(struct intel_plane *plane),
-	    TP_ARGS(plane),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
-									 plane->pipe);
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
-);
-
-/* pipe updates */
-
-TRACE_EVENT(intel_crtc_vblank_work_start,
-	    TP_PROTO(struct intel_crtc *crtc),
-	    TP_ARGS(crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __entry->frame,
-		       __entry->scanline)
-);
-
-TRACE_EVENT(intel_crtc_vblank_work_end,
-	    TP_PROTO(struct intel_crtc *crtc),
-	    TP_ARGS(crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __entry->frame,
-		       __entry->scanline)
-);
-
-TRACE_EVENT(intel_pipe_update_start,
-	    TP_PROTO(struct intel_crtc *crtc),
-	    TP_ARGS(crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __field(u32, min)
-			     __field(u32, max)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
-			   __entry->scanline = intel_get_crtc_scanline(crtc);
-			   __entry->min = crtc->debug.min_vbl;
-			   __entry->max = crtc->debug.max_vbl;
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
-		      pipe_name(__entry->pipe), __entry->frame,
-		       __entry->scanline, __entry->min, __entry->max)
-);
-
-TRACE_EVENT(intel_pipe_update_vblank_evaded,
-	    TP_PROTO(struct intel_crtc *crtc),
-	    TP_ARGS(crtc),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     __field(u32, min)
-			     __field(u32, max)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = crtc->debug.start_vbl_count;
-			   __entry->scanline = crtc->debug.scanline_start;
-			   __entry->min = crtc->debug.min_vbl;
-			   __entry->max = crtc->debug.max_vbl;
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
-		      pipe_name(__entry->pipe), __entry->frame,
-		       __entry->scanline, __entry->min, __entry->max)
-);
-
-TRACE_EVENT(intel_pipe_update_end,
-	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
-	    TP_ARGS(crtc, frame, scanline_end),
-
-	    TP_STRUCT__entry(
-			     __field(enum pipe, pipe)
-			     __field(u32, frame)
-			     __field(u32, scanline)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->pipe = crtc->pipe;
-			   __entry->frame = frame;
-			   __entry->scanline = scanline_end;
-			   ),
-
-	    TP_printk("pipe %c, frame=%u, scanline=%u",
-		      pipe_name(__entry->pipe), __entry->frame,
-		      __entry->scanline)
-);
-
-/* frontbuffer tracking */
-
-TRACE_EVENT(intel_frontbuffer_invalidate,
-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
-	    TP_ARGS(frontbuffer_bits, origin),
-
-	    TP_STRUCT__entry(
-			     __field(unsigned int, frontbuffer_bits)
-			     __field(unsigned int, origin)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->frontbuffer_bits = frontbuffer_bits;
-			   __entry->origin = origin;
-			   ),
-
-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
-		      __entry->frontbuffer_bits, __entry->origin)
-);
-
-TRACE_EVENT(intel_frontbuffer_flush,
-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
-	    TP_ARGS(frontbuffer_bits, origin),
-
-	    TP_STRUCT__entry(
-			     __field(unsigned int, frontbuffer_bits)
-			     __field(unsigned int, origin)
-			     ),
-
-	    TP_fast_assign(
-			   __entry->frontbuffer_bits = frontbuffer_bits;
-			   __entry->origin = origin;
-			   ),
-
-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
-		      __entry->frontbuffer_bits, __entry->origin)
-);
-
 /* object tracking */
 
 TRACE_EVENT(i915_gem_object_create,
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index fe3787425780..abad48e1690e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -36,6 +36,7 @@
 #include "display/intel_atomic_plane.h"
 #include "display/intel_bw.h"
 #include "display/intel_de.h"
+#include "display/intel_display_trace.h"
 #include "display/intel_display_types.h"
 #include "display/intel_fb.h"
 #include "display/intel_fbc.h"
@@ -47,7 +48,6 @@
 #include "i915_drv.h"
 #include "i915_fixed.h"
 #include "i915_irq.h"
-#include "i915_trace.h"
 #include "intel_pcode.h"
 #include "intel_pm.h"
 #include "vlv_sideband.h"
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: trace display split
  2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
  2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 1/2] drm/i915/trace: clean up boilerplate organization Jani Nikula
  2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file Jani Nikula
@ 2021-12-08 13:48 ` Patchwork
  2021-12-08 13:49 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2021-12-08 13:48 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: trace display split
URL   : https://patchwork.freedesktop.org/series/97721/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
25fd3bfdc326 drm/i915/trace: clean up boilerplate organization
b994ae8af368 drm/i915/trace: split out display trace to a separate file
-:144: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#144: 
new file mode 100644

-:186: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#186: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:23:
+	    TP_STRUCT__entry(

-:191: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#191: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:28:
+	    TP_fast_assign(

-:192: WARNING:TABSTOP: Statements should start on a tabstop
#192: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:29:
+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);

-:193: WARNING:TABSTOP: Statements should start on a tabstop
#193: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:30:
+			   struct intel_crtc *it__;

-:194: WARNING:LINE_SPACING: Missing a blank line after declarations
#194: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:31:
+			   struct intel_crtc *it__;
+			   for_each_intel_crtc(&dev_priv->drm, it__) {

-:194: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (27, 35)
#194: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:31:
+			   for_each_intel_crtc(&dev_priv->drm, it__) {
+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);

-:197: WARNING:TABSTOP: Statements should start on a tabstop
#197: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:34:
+			   }

-:212: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#212: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:49:
+	    TP_STRUCT__entry(

-:218: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#218: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:55:
+	    TP_fast_assign(

-:219: WARNING:TABSTOP: Statements should start on a tabstop
#219: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:56:
+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);

-:220: WARNING:TABSTOP: Statements should start on a tabstop
#220: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:57:
+			   struct intel_crtc *it__;

-:221: WARNING:LINE_SPACING: Missing a blank line after declarations
#221: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:58:
+			   struct intel_crtc *it__;
+			   for_each_intel_crtc(&dev_priv->drm, it__) {

-:221: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (27, 35)
#221: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:58:
+			   for_each_intel_crtc(&dev_priv->drm, it__) {
+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);

-:224: WARNING:TABSTOP: Statements should start on a tabstop
#224: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:61:
+			   }

-:239: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#239: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:76:
+	    TP_STRUCT__entry(

-:246: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#246: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:83:
+	    TP_fast_assign(

-:263: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#263: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:100:
+	    TP_STRUCT__entry(

-:269: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#269: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:106:
+	    TP_fast_assign(

-:270: WARNING:TABSTOP: Statements should start on a tabstop
#270: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:107:
+			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);

-:285: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#285: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:122:
+	    TP_STRUCT__entry(

-:291: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#291: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:128:
+	    TP_fast_assign(

-:292: WARNING:TABSTOP: Statements should start on a tabstop
#292: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:129:
+			   enum pipe pipe = pch_transcoder;

-:293: WARNING:TABSTOP: Statements should start on a tabstop
#293: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:130:
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);

-:294: WARNING:LINE_SPACING: Missing a blank line after declarations
#294: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:131:
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+			   __entry->pipe = pipe;

-:308: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#308: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:145:
+	    TP_STRUCT__entry(

-:315: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#315: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:152:
+	    TP_fast_assign(

-:316: WARNING:TABSTOP: Statements should start on a tabstop
#316: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:153:
+			   struct intel_crtc *crtc;

-:317: WARNING:LINE_SPACING: Missing a blank line after declarations
#317: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:154:
+			   struct intel_crtc *crtc;
+			   for_each_intel_crtc(&dev_priv->drm, crtc) {

-:317: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (27, 35)
#317: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:154:
+			   for_each_intel_crtc(&dev_priv->drm, crtc) {
+				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);

-:320: WARNING:TABSTOP: Statements should start on a tabstop
#320: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:157:
+			   }

-:336: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#336: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:173:
+	    TP_STRUCT__entry(

-:354: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#354: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:191:
+	    TP_fast_assign(

-:376: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#376: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:213:
+		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,

-:384: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#384: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:221:
+	    TP_STRUCT__entry(

-:398: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#398: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:235:
+	    TP_fast_assign(

-:423: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#423: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:260:
+	    TP_STRUCT__entry(

-:432: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#432: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:269:
+	    TP_fast_assign(

-:451: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#451: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:288:
+	    TP_STRUCT__entry(

-:460: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#460: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:297:
+	    TP_fast_assign(

-:469: WARNING:LONG_LINE: line length of 103 exceeds 100 columns
#469: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:306:
+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,

-:480: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#480: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:317:
+	    TP_STRUCT__entry(

-:489: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#489: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:326:
+	    TP_fast_assign(

-:498: WARNING:LONG_LINE: line length of 103 exceeds 100 columns
#498: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:335:
+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,

-:509: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#509: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:346:
+	    TP_STRUCT__entry(

-:516: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#516: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:353:
+	    TP_fast_assign(

-:532: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#532: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:369:
+	    TP_STRUCT__entry(

-:538: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#538: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:375:
+	    TP_fast_assign(

-:539: WARNING:TABSTOP: Statements should start on a tabstop
#539: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:376:
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),

-:554: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#554: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:391:
+	    TP_STRUCT__entry(

-:560: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#560: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:397:
+	    TP_fast_assign(

-:561: WARNING:TABSTOP: Statements should start on a tabstop
#561: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:398:
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),

-:576: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#576: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:413:
+	    TP_STRUCT__entry(

-:582: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#582: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:419:
+	    TP_fast_assign(

-:583: WARNING:TABSTOP: Statements should start on a tabstop
#583: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:420:
+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),

-:598: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#598: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:435:
+	    TP_STRUCT__entry(

-:604: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#604: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:441:
+	    TP_fast_assign(

-:619: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#619: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:456:
+	    TP_STRUCT__entry(

-:625: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#625: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:462:
+	    TP_fast_assign(

-:640: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#640: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:477:
+	    TP_STRUCT__entry(

-:648: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#648: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:485:
+	    TP_fast_assign(

-:665: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#665: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:502:
+	    TP_STRUCT__entry(

-:673: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#673: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:510:
+	    TP_fast_assign(

-:690: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#690: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:527:
+	    TP_STRUCT__entry(

-:696: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#696: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:533:
+	    TP_fast_assign(

-:711: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#711: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:548:
+	    TP_STRUCT__entry(

-:716: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#716: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:553:
+	    TP_fast_assign(

-:729: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#729: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:566:
+	    TP_STRUCT__entry(

-:734: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#734: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:571:
+	    TP_fast_assign(

-:748: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#748: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:585:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
                              ^

-:748: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#748: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:585:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
                                 ^

-:748: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#748: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:585:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
                                         ^

-:748: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#748: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:585:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
                                             ^

-:748: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#748: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:585:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
                                                 ^

-:748: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#748: FILE: drivers/gpu/drm/i915/display/intel_display_trace.h:585:
+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
                                                      ^

total: 0 errors, 25 warnings, 50 checks, 1388 lines checked



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: trace display split
  2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
                   ` (2 preceding siblings ...)
  2021-12-08 13:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: trace display split Patchwork
@ 2021-12-08 13:49 ` Patchwork
  2021-12-08 14:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  2021-12-08 18:18 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2021-12-08 13:49 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: trace display split
URL   : https://patchwork.freedesktop.org/series/97721/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: trace display split
  2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
                   ` (3 preceding siblings ...)
  2021-12-08 13:49 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2021-12-08 14:28 ` Patchwork
  2021-12-08 18:18 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2021-12-08 14:28 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 5323 bytes --]

== Series Details ==

Series: drm/i915: trace display split
URL   : https://patchwork.freedesktop.org/series/97721/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10973 -> Patchwork_21785
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/index.html

Participating hosts (45 -> 36)
------------------------------

  Additional (1): fi-kbl-soraka 
  Missing    (10): fi-ilk-m540 bat-dg1-6 bat-dg1-5 fi-tgl-dsi fi-hsw-4200u fi-bsw-cyan bat-adlp-6 bat-adlp-4 fi-ctg-p8600 bat-jsl-1 

Known issues
------------

  Here are the changes found in Patchwork_21785 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fence@basic-busy@bcs0:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][1] ([fdo#109271]) +8 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-kbl-soraka/igt@gem_exec_fence@basic-busy@bcs0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html

  * igt@i915_selftest@live@execlists:
    - fi-bsw-nick:        [PASS][4] -> [INCOMPLETE][5] ([i915#2940])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/fi-bsw-nick/igt@i915_selftest@live@execlists.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-bsw-nick/igt@i915_selftest@live@execlists.html

  * igt@i915_selftest@live@gt_engines:
    - fi-rkl-guc:         [PASS][6] -> [INCOMPLETE][7] ([i915#4432])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/fi-rkl-guc/igt@i915_selftest@live@gt_engines.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-rkl-guc/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][8] ([i915#1886] / [i915#2291])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-kbl-soraka/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#533])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-kbl-soraka/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  * igt@runner@aborted:
    - fi-bsw-nick:        NOTRUN -> [FAIL][11] ([fdo#109271] / [i915#1436] / [i915#3428] / [i915#4312])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-bsw-nick/igt@runner@aborted.html
    - fi-rkl-guc:         NOTRUN -> [FAIL][12] ([i915#3928] / [i915#4312])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-rkl-guc/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [DMESG-WARN][13] ([i915#4269]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#3428]: https://gitlab.freedesktop.org/drm/intel/issues/3428
  [i915#3928]: https://gitlab.freedesktop.org/drm/intel/issues/3928
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4432]: https://gitlab.freedesktop.org/drm/intel/issues/4432
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


Build changes
-------------

  * Linux: CI_DRM_10973 -> Patchwork_21785

  CI-20190529: 20190529
  CI_DRM_10973: e540b0c4da51fd576e9b61489899acd074a0e4cd @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6303: 49deb6b505c293a60dd3b3976a63c467bf88442e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_21785: b994ae8af368412bfe0c52d4635c263d5471e11e @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b994ae8af368 drm/i915/trace: split out display trace to a separate file
25fd3bfdc326 drm/i915/trace: clean up boilerplate organization

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/index.html

[-- Attachment #2: Type: text/html, Size: 6575 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file
  2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file Jani Nikula
@ 2021-12-08 16:03   ` Lucas De Marchi
  2021-12-08 16:39     ` Jani Nikula
  0 siblings, 1 reply; 11+ messages in thread
From: Lucas De Marchi @ 2021-12-08 16:03 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Wed, Dec 08, 2021 at 01:05:17PM +0200, Jani Nikula wrote:
>Add display/intel_display_trace.[ch] for defining display
>tracepoints. The main goal is to reduce cross-includes between gem and
>display. It would be possible split up tracing even further, but that
>would lead to more boilerplate.
>
>We end up having to include intel_crtc.h in a few places because it was
>pulled in implicitly via intel_de.h -> i915_trace.h -> intel_crtc.h, and
>that's no longer the case.
>
>There should be no changes to tracepoints.
>
>v3:
>- Rebase
>
>v2:
>- Define TRACE_INCLUDE_PATH relative to define_trace.h (Chris)
>- Remove useless comments (Ville)
>
>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>


only thing I noticed in the code move is that we lost the comments about
grouping the tracepoints. Was this intentional? Example:

	/* watermark/fifo updates */
	...
	/* plane updates */
	...
	etc


Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

Lucas De Marchi




>---
> drivers/gpu/drm/i915/Makefile                 |   1 +
> drivers/gpu/drm/i915/display/g4x_dp.c         |   1 +
> drivers/gpu/drm/i915/display/g4x_hdmi.c       |   1 +
> .../gpu/drm/i915/display/intel_atomic_plane.c |   5 +-
> drivers/gpu/drm/i915/display/intel_audio.c    |   1 +
> drivers/gpu/drm/i915/display/intel_cdclk.c    |   1 +
> drivers/gpu/drm/i915/display/intel_crtc.c     |   4 +-
> .../drm/i915/display/intel_display_trace.c    |   9 +
> .../drm/i915/display/intel_display_trace.h    | 587 ++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_dp.c       |   1 +
> drivers/gpu/drm/i915/display/intel_fbc.c      |   2 +-
> drivers/gpu/drm/i915/display/intel_fdi.c      |   1 +
> .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
> .../gpu/drm/i915/display/intel_frontbuffer.c  |   7 +-
> drivers/gpu/drm/i915/display/intel_sprite.c   |   4 +-
> drivers/gpu/drm/i915/display/intel_tv.c       |   1 +
> drivers/gpu/drm/i915/display/intel_vdsc.c     |   4 +-
> drivers/gpu/drm/i915/i915_debugfs.c           |   1 -
> drivers/gpu/drm/i915/i915_driver.c            |   1 -
> drivers/gpu/drm/i915/i915_irq.c               |   2 +-
> drivers/gpu/drm/i915/i915_trace.h             | 573 -----------------
> drivers/gpu/drm/i915/intel_pm.c               |   2 +-
> 22 files changed, 621 insertions(+), 590 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.c
> create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.h
>
>diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
>index 3b5857da4123..6ddd2d2bbaaf 100644
>--- a/drivers/gpu/drm/i915/Makefile
>+++ b/drivers/gpu/drm/i915/Makefile
>@@ -259,6 +259,7 @@ i915-y += \
> 	display/intel_crt.o \
> 	display/intel_ddi.o \
> 	display/intel_ddi_buf_trans.o \
>+	display/intel_display_trace.o \
> 	display/intel_dp.o \
> 	display/intel_dp_aux.o \
> 	display/intel_dp_aux_backlight.o \
>diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
>index dc41868d01ef..f37677df6ebf 100644
>--- a/drivers/gpu/drm/i915/display/g4x_dp.c
>+++ b/drivers/gpu/drm/i915/display/g4x_dp.c
>@@ -9,6 +9,7 @@
> #include "intel_audio.h"
> #include "intel_backlight.h"
> #include "intel_connector.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_dp.h"
>diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
>index f5b4dd5b4275..06e00b1eaa7c 100644
>--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
>+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
>@@ -8,6 +8,7 @@
> #include "g4x_hdmi.h"
> #include "intel_audio.h"
> #include "intel_connector.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_dpio_phy.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>index 27b8f99dd099..89005628cc3a 100644
>--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>@@ -35,15 +35,16 @@
> #include <drm/drm_fourcc.h>
> #include <drm/drm_plane_helper.h>
>
>-#include "i915_trace.h"
>+#include "gt/intel_rps.h"
>+
> #include "intel_atomic_plane.h"
> #include "intel_cdclk.h"
>+#include "intel_display_trace.h"
> #include "intel_display_types.h"
> #include "intel_fb.h"
> #include "intel_fb_pin.h"
> #include "intel_pm.h"
> #include "intel_sprite.h"
>-#include "gt/intel_rps.h"
>
> static void intel_plane_state_reset(struct intel_plane_state *plane_state,
> 				    struct intel_plane *plane)
>diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
>index 03c3111ebdf0..991170c803e1 100644
>--- a/drivers/gpu/drm/i915/display/intel_audio.c
>+++ b/drivers/gpu/drm/i915/display/intel_audio.c
>@@ -31,6 +31,7 @@
> #include "intel_atomic.h"
> #include "intel_audio.h"
> #include "intel_cdclk.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_lpe_audio.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
>index a5569f21811c..639a64733f61 100644
>--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
>+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
>@@ -27,6 +27,7 @@
> #include "intel_audio.h"
> #include "intel_bw.h"
> #include "intel_cdclk.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_pcode.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
>index 43554b591904..6930fbedc97d 100644
>--- a/drivers/gpu/drm/i915/display/intel_crtc.c
>+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
>@@ -12,8 +12,8 @@
> #include <drm/drm_plane_helper.h>
> #include <drm/drm_vblank_work.h>
>
>-#include "i915_trace.h"
> #include "i915_vgpu.h"
>+#include "i9xx_plane.h"
> #include "icl_dsi.h"
> #include "intel_atomic.h"
> #include "intel_atomic_plane.h"
>@@ -21,13 +21,13 @@
> #include "intel_crtc.h"
> #include "intel_cursor.h"
> #include "intel_display_debugfs.h"
>+#include "intel_display_trace.h"
> #include "intel_display_types.h"
> #include "intel_dsi.h"
> #include "intel_pipe_crc.h"
> #include "intel_psr.h"
> #include "intel_sprite.h"
> #include "intel_vrr.h"
>-#include "i9xx_plane.h"
> #include "skl_universal_plane.h"
>
> static void assert_vblank_disabled(struct drm_crtc *crtc)
>diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.c b/drivers/gpu/drm/i915/display/intel_display_trace.c
>new file mode 100644
>index 000000000000..737979ada869
>--- /dev/null
>+++ b/drivers/gpu/drm/i915/display/intel_display_trace.c
>@@ -0,0 +1,9 @@
>+// SPDX-License-Identifier: GPL-2.0
>+/*
>+ * Copyright © 2021 Intel Corporation
>+ */
>+
>+#ifndef __CHECKER__
>+#define CREATE_TRACE_POINTS
>+#include "intel_display_trace.h"
>+#endif
>diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.h b/drivers/gpu/drm/i915/display/intel_display_trace.h
>new file mode 100644
>index 000000000000..4043e1276383
>--- /dev/null
>+++ b/drivers/gpu/drm/i915/display/intel_display_trace.h
>@@ -0,0 +1,587 @@
>+/* SPDX-License-Identifier: GPL-2.0 */
>+/*
>+ * Copyright © 2021 Intel Corporation
>+ */
>+
>+#undef TRACE_SYSTEM
>+#define TRACE_SYSTEM i915
>+
>+#if !defined(__INTEL_DISPLAY_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
>+#define __INTEL_DISPLAY_TRACE_H__
>+
>+#include <linux/types.h>
>+#include <linux/tracepoint.h>
>+
>+#include "i915_drv.h"
>+#include "intel_crtc.h"
>+#include "intel_display_types.h"
>+
>+TRACE_EVENT(intel_pipe_enable,
>+	    TP_PROTO(struct intel_crtc *crtc),
>+	    TP_ARGS(crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __array(u32, frame, 3)
>+			     __array(u32, scanline, 3)
>+			     __field(enum pipe, pipe)
>+			     ),
>+	    TP_fast_assign(
>+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>+			   struct intel_crtc *it__;
>+			   for_each_intel_crtc(&dev_priv->drm, it__) {
>+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>+			   }
>+			   __entry->pipe = crtc->pipe;
>+			   ),
>+
>+	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe),
>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>+);
>+
>+TRACE_EVENT(intel_pipe_disable,
>+	    TP_PROTO(struct intel_crtc *crtc),
>+	    TP_ARGS(crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __array(u32, frame, 3)
>+			     __array(u32, scanline, 3)
>+			     __field(enum pipe, pipe)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>+			   struct intel_crtc *it__;
>+			   for_each_intel_crtc(&dev_priv->drm, it__) {
>+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>+			   }
>+			   __entry->pipe = crtc->pipe;
>+			   ),
>+
>+	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe),
>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>+);
>+
>+TRACE_EVENT(intel_pipe_crc,
>+	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
>+	    TP_ARGS(crtc, crcs),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __array(u32, crcs, 5)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>+		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
>+		      __entry->crcs[3], __entry->crcs[4])
>+);
>+
>+TRACE_EVENT(intel_cpu_fifo_underrun,
>+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>+	    TP_ARGS(dev_priv, pipe),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>+			   __entry->pipe = pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe),
>+		      __entry->frame, __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_pch_fifo_underrun,
>+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
>+	    TP_ARGS(dev_priv, pch_transcoder),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   enum pipe pipe = pch_transcoder;
>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>+			   __entry->pipe = pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe),
>+		      __entry->frame, __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_memory_cxsr,
>+	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
>+	    TP_ARGS(dev_priv, old, new),
>+
>+	    TP_STRUCT__entry(
>+			     __array(u32, frame, 3)
>+			     __array(u32, scanline, 3)
>+			     __field(bool, old)
>+			     __field(bool, new)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   struct intel_crtc *crtc;
>+			   for_each_intel_crtc(&dev_priv->drm, crtc) {
>+				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
>+				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
>+			   }
>+			   __entry->old = old;
>+			   __entry->new = new;
>+			   ),
>+
>+	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>+		      onoff(__entry->old), onoff(__entry->new),
>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>+);
>+
>+TRACE_EVENT(g4x_wm,
>+	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
>+	    TP_ARGS(crtc, wm),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __field(u16, primary)
>+			     __field(u16, sprite)
>+			     __field(u16, cursor)
>+			     __field(u16, sr_plane)
>+			     __field(u16, sr_cursor)
>+			     __field(u16, sr_fbc)
>+			     __field(u16, hpll_plane)
>+			     __field(u16, hpll_cursor)
>+			     __field(u16, hpll_fbc)
>+			     __field(bool, cxsr)
>+			     __field(bool, hpll)
>+			     __field(bool, fbc)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>+			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>+			   __entry->sr_plane = wm->sr.plane;
>+			   __entry->sr_cursor = wm->sr.cursor;
>+			   __entry->sr_fbc = wm->sr.fbc;
>+			   __entry->hpll_plane = wm->hpll.plane;
>+			   __entry->hpll_cursor = wm->hpll.cursor;
>+			   __entry->hpll_fbc = wm->hpll.fbc;
>+			   __entry->cxsr = wm->cxsr;
>+			   __entry->hpll = wm->hpll_en;
>+			   __entry->fbc = wm->fbc_en;
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>+		      __entry->primary, __entry->sprite, __entry->cursor,
>+		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
>+		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
>+		      yesno(__entry->fbc))
>+);
>+
>+TRACE_EVENT(vlv_wm,
>+	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
>+	    TP_ARGS(crtc, wm),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __field(u32, level)
>+			     __field(u32, cxsr)
>+			     __field(u32, primary)
>+			     __field(u32, sprite0)
>+			     __field(u32, sprite1)
>+			     __field(u32, cursor)
>+			     __field(u32, sr_plane)
>+			     __field(u32, sr_cursor)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   __entry->level = wm->level;
>+			   __entry->cxsr = wm->cxsr;
>+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>+			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>+			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
>+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>+			   __entry->sr_plane = wm->sr.plane;
>+			   __entry->sr_cursor = wm->sr.cursor;
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		      __entry->scanline, __entry->level, __entry->cxsr,
>+		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
>+		      __entry->sr_plane, __entry->sr_cursor)
>+);
>+
>+TRACE_EVENT(vlv_fifo_size,
>+	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
>+	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __field(u32, sprite0_start)
>+			     __field(u32, sprite1_start)
>+			     __field(u32, fifo_size)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   __entry->sprite0_start = sprite0_start;
>+			   __entry->sprite1_start = sprite1_start;
>+			   __entry->fifo_size = fifo_size;
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		      __entry->scanline, __entry->sprite0_start,
>+		      __entry->sprite1_start, __entry->fifo_size)
>+);
>+
>+TRACE_EVENT(intel_plane_update_noarm,
>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>+	    TP_ARGS(plane, crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __array(int, src, 4)
>+			     __array(int, dst, 4)
>+			     __string(name, plane->name)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __assign_str(name, plane->name);
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>+			   ),
>+
>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>+		      pipe_name(__entry->pipe), __get_str(name),
>+		      __entry->frame, __entry->scanline,
>+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>+);
>+
>+TRACE_EVENT(intel_plane_update_arm,
>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>+	    TP_ARGS(plane, crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __array(int, src, 4)
>+			     __array(int, dst, 4)
>+			     __string(name, plane->name)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __assign_str(name, plane->name);
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>+			   ),
>+
>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>+		      pipe_name(__entry->pipe), __get_str(name),
>+		      __entry->frame, __entry->scanline,
>+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>+);
>+
>+TRACE_EVENT(intel_plane_disable_arm,
>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>+	    TP_ARGS(plane, crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __string(name, plane->name)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __assign_str(name, plane->name);
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __get_str(name),
>+		      __entry->frame, __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_fbc_activate,
>+	    TP_PROTO(struct intel_plane *plane),
>+	    TP_ARGS(plane),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>+									 plane->pipe);
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_fbc_deactivate,
>+	    TP_PROTO(struct intel_plane *plane),
>+	    TP_ARGS(plane),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>+									 plane->pipe);
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_fbc_nuke,
>+	    TP_PROTO(struct intel_plane *plane),
>+	    TP_ARGS(plane),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>+									 plane->pipe);
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_crtc_vblank_work_start,
>+	    TP_PROTO(struct intel_crtc *crtc),
>+	    TP_ARGS(crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		       __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_crtc_vblank_work_end,
>+	    TP_PROTO(struct intel_crtc *crtc),
>+	    TP_ARGS(crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		       __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_pipe_update_start,
>+	    TP_PROTO(struct intel_crtc *crtc),
>+	    TP_ARGS(crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __field(u32, min)
>+			     __field(u32, max)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>+			   __entry->min = crtc->debug.min_vbl;
>+			   __entry->max = crtc->debug.max_vbl;
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		       __entry->scanline, __entry->min, __entry->max)
>+);
>+
>+TRACE_EVENT(intel_pipe_update_vblank_evaded,
>+	    TP_PROTO(struct intel_crtc *crtc),
>+	    TP_ARGS(crtc),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     __field(u32, min)
>+			     __field(u32, max)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = crtc->debug.start_vbl_count;
>+			   __entry->scanline = crtc->debug.scanline_start;
>+			   __entry->min = crtc->debug.min_vbl;
>+			   __entry->max = crtc->debug.max_vbl;
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		       __entry->scanline, __entry->min, __entry->max)
>+);
>+
>+TRACE_EVENT(intel_pipe_update_end,
>+	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
>+	    TP_ARGS(crtc, frame, scanline_end),
>+
>+	    TP_STRUCT__entry(
>+			     __field(enum pipe, pipe)
>+			     __field(u32, frame)
>+			     __field(u32, scanline)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->pipe = crtc->pipe;
>+			   __entry->frame = frame;
>+			   __entry->scanline = scanline_end;
>+			   ),
>+
>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>+		      pipe_name(__entry->pipe), __entry->frame,
>+		      __entry->scanline)
>+);
>+
>+TRACE_EVENT(intel_frontbuffer_invalidate,
>+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>+	    TP_ARGS(frontbuffer_bits, origin),
>+
>+	    TP_STRUCT__entry(
>+			     __field(unsigned int, frontbuffer_bits)
>+			     __field(unsigned int, origin)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->frontbuffer_bits = frontbuffer_bits;
>+			   __entry->origin = origin;
>+			   ),
>+
>+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>+		      __entry->frontbuffer_bits, __entry->origin)
>+);
>+
>+TRACE_EVENT(intel_frontbuffer_flush,
>+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>+	    TP_ARGS(frontbuffer_bits, origin),
>+
>+	    TP_STRUCT__entry(
>+			     __field(unsigned int, frontbuffer_bits)
>+			     __field(unsigned int, origin)
>+			     ),
>+
>+	    TP_fast_assign(
>+			   __entry->frontbuffer_bits = frontbuffer_bits;
>+			   __entry->origin = origin;
>+			   ),
>+
>+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>+		      __entry->frontbuffer_bits, __entry->origin)
>+);
>+
>+#endif /* __INTEL_DISPLAY_TRACE_H__ */
>+
>+/* This part must be outside protection */
>+#undef TRACE_INCLUDE_PATH
>+#undef TRACE_INCLUDE_FILE
>+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
>+#define TRACE_INCLUDE_FILE intel_display_trace
>+#include <trace/define_trace.h>
>diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>index a24831acb7da..b5e2508db1cf 100644
>--- a/drivers/gpu/drm/i915/display/intel_dp.c
>+++ b/drivers/gpu/drm/i915/display/intel_dp.c
>@@ -47,6 +47,7 @@
> #include "intel_audio.h"
> #include "intel_backlight.h"
> #include "intel_connector.h"
>+#include "intel_crtc.h"
> #include "intel_ddi.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
>index 6efbef7a1fc0..8be01b93015f 100644
>--- a/drivers/gpu/drm/i915/display/intel_fbc.c
>+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
>@@ -41,10 +41,10 @@
> #include <drm/drm_fourcc.h>
>
> #include "i915_drv.h"
>-#include "i915_trace.h"
> #include "i915_vgpu.h"
> #include "intel_cdclk.h"
> #include "intel_de.h"
>+#include "intel_display_trace.h"
> #include "intel_display_types.h"
> #include "intel_fbc.h"
> #include "intel_frontbuffer.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c
>index be77be626420..3d6e22923601 100644
>--- a/drivers/gpu/drm/i915/display/intel_fdi.c
>+++ b/drivers/gpu/drm/i915/display/intel_fdi.c
>@@ -4,6 +4,7 @@
>  */
>
> #include "intel_atomic.h"
>+#include "intel_crtc.h"
> #include "intel_ddi.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>index 76045ce84739..d636d21fa9ce 100644
>--- a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>+++ b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>@@ -26,8 +26,8 @@
>  */
>
> #include "i915_drv.h"
>-#include "i915_trace.h"
> #include "intel_de.h"
>+#include "intel_display_trace.h"
> #include "intel_display_types.h"
> #include "intel_fbc.h"
> #include "intel_fifo_underrun.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>index 0492446cd04a..791248f812aa 100644
>--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>@@ -55,14 +55,13 @@
>  * cancelled as soon as busyness is detected.
>  */
>
>-#include "display/intel_dp.h"
>-
> #include "i915_drv.h"
>-#include "i915_trace.h"
>+#include "intel_display_trace.h"
> #include "intel_display_types.h"
>+#include "intel_dp.h"
>+#include "intel_drrs.h"
> #include "intel_fbc.h"
> #include "intel_frontbuffer.h"
>-#include "intel_drrs.h"
> #include "intel_psr.h"
>
> /**
>diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
>index 926f5cdc65fd..2357a1301f48 100644
>--- a/drivers/gpu/drm/i915/display/intel_sprite.c
>+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
>@@ -40,15 +40,15 @@
> #include <drm/drm_rect.h>
>
> #include "i915_drv.h"
>-#include "i915_trace.h"
> #include "i915_vgpu.h"
>+#include "i9xx_plane.h"
> #include "intel_atomic_plane.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_fb.h"
> #include "intel_frontbuffer.h"
> #include "intel_sprite.h"
>-#include "i9xx_plane.h"
> #include "intel_vrr.h"
>
> int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
>diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
>index fc77947dc3d5..8a39989b87ad 100644
>--- a/drivers/gpu/drm/i915/display/intel_tv.c
>+++ b/drivers/gpu/drm/i915/display/intel_tv.c
>@@ -36,6 +36,7 @@
>
> #include "i915_drv.h"
> #include "intel_connector.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_hotplug.h"
>diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
>index c6851b0e0bed..1cc4170e6ec8 100644
>--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
>+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
>@@ -6,12 +6,14 @@
>  *         Manasi Navare <manasi.d.navare@intel.com>
>  */
> #include <linux/limits.h>
>+
> #include "i915_drv.h"
>+#include "intel_crtc.h"
> #include "intel_de.h"
> #include "intel_display_types.h"
> #include "intel_dsi.h"
>-#include "intel_vdsc.h"
> #include "intel_qp_tables.h"
>+#include "intel_vdsc.h"
>
> enum ROW_INDEX_BPP {
> 	ROW_INDEX_6BPP = 0,
>diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>index 390d541f64ea..bafb902269de 100644
>--- a/drivers/gpu/drm/i915/i915_debugfs.c
>+++ b/drivers/gpu/drm/i915/i915_debugfs.c
>@@ -48,7 +48,6 @@
> #include "i915_debugfs_params.h"
> #include "i915_irq.h"
> #include "i915_scheduler.h"
>-#include "i915_trace.h"
> #include "intel_pm.h"
>
> static inline struct drm_i915_private *node_to_i915(struct drm_info_node *node)
>diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
>index bbc99fc5888f..e9125f14b3d1 100644
>--- a/drivers/gpu/drm/i915/i915_driver.c
>+++ b/drivers/gpu/drm/i915/i915_driver.c
>@@ -82,7 +82,6 @@
> #include "i915_suspend.h"
> #include "i915_switcheroo.h"
> #include "i915_sysfs.h"
>-#include "i915_trace.h"
> #include "i915_vgpu.h"
> #include "intel_dram.h"
> #include "intel_gvt.h"
>diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>index d0be94456bd8..5b98fb0532b5 100644
>--- a/drivers/gpu/drm/i915/i915_irq.c
>+++ b/drivers/gpu/drm/i915/i915_irq.c
>@@ -35,6 +35,7 @@
> #include <drm/drm_drv.h>
>
> #include "display/intel_de.h"
>+#include "display/intel_display_trace.h"
> #include "display/intel_display_types.h"
> #include "display/intel_fifo_underrun.h"
> #include "display/intel_hotplug.h"
>@@ -49,7 +50,6 @@
>
> #include "i915_drv.h"
> #include "i915_irq.h"
>-#include "i915_trace.h"
> #include "intel_pm.h"
>
> /**
>diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
>index a07bed5333cc..37b5c9e9d260 100644
>--- a/drivers/gpu/drm/i915/i915_trace.h
>+++ b/drivers/gpu/drm/i915/i915_trace.h
>@@ -12,584 +12,11 @@
>
> #include <drm/drm_drv.h>
>
>-#include "display/intel_crtc.h"
>-#include "display/intel_display_types.h"
> #include "gt/intel_engine.h"
>
> #include "i915_drv.h"
> #include "i915_irq.h"
>
>-/* watermark/fifo updates */
>-
>-TRACE_EVENT(intel_pipe_enable,
>-	    TP_PROTO(struct intel_crtc *crtc),
>-	    TP_ARGS(crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __array(u32, frame, 3)
>-			     __array(u32, scanline, 3)
>-			     __field(enum pipe, pipe)
>-			     ),
>-	    TP_fast_assign(
>-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>-			   struct intel_crtc *it__;
>-			   for_each_intel_crtc(&dev_priv->drm, it__) {
>-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>-			   }
>-			   __entry->pipe = crtc->pipe;
>-			   ),
>-
>-	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe),
>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>-);
>-
>-TRACE_EVENT(intel_pipe_disable,
>-	    TP_PROTO(struct intel_crtc *crtc),
>-	    TP_ARGS(crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __array(u32, frame, 3)
>-			     __array(u32, scanline, 3)
>-			     __field(enum pipe, pipe)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>-			   struct intel_crtc *it__;
>-			   for_each_intel_crtc(&dev_priv->drm, it__) {
>-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>-			   }
>-			   __entry->pipe = crtc->pipe;
>-			   ),
>-
>-	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe),
>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>-);
>-
>-TRACE_EVENT(intel_pipe_crc,
>-	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
>-	    TP_ARGS(crtc, crcs),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __array(u32, crcs, 5)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>-		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
>-		      __entry->crcs[3], __entry->crcs[4])
>-);
>-
>-TRACE_EVENT(intel_cpu_fifo_underrun,
>-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>-	    TP_ARGS(dev_priv, pipe),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>-			   __entry->pipe = pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe),
>-		      __entry->frame, __entry->scanline)
>-);
>-
>-TRACE_EVENT(intel_pch_fifo_underrun,
>-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
>-	    TP_ARGS(dev_priv, pch_transcoder),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   enum pipe pipe = pch_transcoder;
>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>-			   __entry->pipe = pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe),
>-		      __entry->frame, __entry->scanline)
>-);
>-
>-TRACE_EVENT(intel_memory_cxsr,
>-	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
>-	    TP_ARGS(dev_priv, old, new),
>-
>-	    TP_STRUCT__entry(
>-			     __array(u32, frame, 3)
>-			     __array(u32, scanline, 3)
>-			     __field(bool, old)
>-			     __field(bool, new)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   struct intel_crtc *crtc;
>-			   for_each_intel_crtc(&dev_priv->drm, crtc) {
>-				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
>-				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
>-			   }
>-			   __entry->old = old;
>-			   __entry->new = new;
>-			   ),
>-
>-	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>-		      onoff(__entry->old), onoff(__entry->new),
>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>-);
>-
>-TRACE_EVENT(g4x_wm,
>-	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
>-	    TP_ARGS(crtc, wm),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __field(u16, primary)
>-			     __field(u16, sprite)
>-			     __field(u16, cursor)
>-			     __field(u16, sr_plane)
>-			     __field(u16, sr_cursor)
>-			     __field(u16, sr_fbc)
>-			     __field(u16, hpll_plane)
>-			     __field(u16, hpll_cursor)
>-			     __field(u16, hpll_fbc)
>-			     __field(bool, cxsr)
>-			     __field(bool, hpll)
>-			     __field(bool, fbc)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>-			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>-			   __entry->sr_plane = wm->sr.plane;
>-			   __entry->sr_cursor = wm->sr.cursor;
>-			   __entry->sr_fbc = wm->sr.fbc;
>-			   __entry->hpll_plane = wm->hpll.plane;
>-			   __entry->hpll_cursor = wm->hpll.cursor;
>-			   __entry->hpll_fbc = wm->hpll.fbc;
>-			   __entry->cxsr = wm->cxsr;
>-			   __entry->hpll = wm->hpll_en;
>-			   __entry->fbc = wm->fbc_en;
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>-		      __entry->primary, __entry->sprite, __entry->cursor,
>-		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
>-		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
>-		      yesno(__entry->fbc))
>-);
>-
>-TRACE_EVENT(vlv_wm,
>-	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
>-	    TP_ARGS(crtc, wm),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __field(u32, level)
>-			     __field(u32, cxsr)
>-			     __field(u32, primary)
>-			     __field(u32, sprite0)
>-			     __field(u32, sprite1)
>-			     __field(u32, cursor)
>-			     __field(u32, sr_plane)
>-			     __field(u32, sr_cursor)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   __entry->level = wm->level;
>-			   __entry->cxsr = wm->cxsr;
>-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>-			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>-			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
>-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>-			   __entry->sr_plane = wm->sr.plane;
>-			   __entry->sr_cursor = wm->sr.cursor;
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		      __entry->scanline, __entry->level, __entry->cxsr,
>-		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
>-		      __entry->sr_plane, __entry->sr_cursor)
>-);
>-
>-TRACE_EVENT(vlv_fifo_size,
>-	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
>-	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __field(u32, sprite0_start)
>-			     __field(u32, sprite1_start)
>-			     __field(u32, fifo_size)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   __entry->sprite0_start = sprite0_start;
>-			   __entry->sprite1_start = sprite1_start;
>-			   __entry->fifo_size = fifo_size;
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		      __entry->scanline, __entry->sprite0_start,
>-		      __entry->sprite1_start, __entry->fifo_size)
>-);
>-
>-/* plane updates */
>-
>-TRACE_EVENT(intel_plane_update_noarm,
>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>-	    TP_ARGS(plane, crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __array(int, src, 4)
>-			     __array(int, dst, 4)
>-			     __string(name, plane->name)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __assign_str(name, plane->name);
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>-			   ),
>-
>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>-		      pipe_name(__entry->pipe), __get_str(name),
>-		      __entry->frame, __entry->scanline,
>-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>-);
>-
>-TRACE_EVENT(intel_plane_update_arm,
>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>-	    TP_ARGS(plane, crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __array(int, src, 4)
>-			     __array(int, dst, 4)
>-			     __string(name, plane->name)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __assign_str(name, plane->name);
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>-			   ),
>-
>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>-		      pipe_name(__entry->pipe), __get_str(name),
>-		      __entry->frame, __entry->scanline,
>-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>-);
>-
>-TRACE_EVENT(intel_plane_disable_arm,
>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>-	    TP_ARGS(plane, crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __string(name, plane->name)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __assign_str(name, plane->name);
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __get_str(name),
>-		      __entry->frame, __entry->scanline)
>-);
>-
>-/* fbc */
>-
>-TRACE_EVENT(intel_fbc_activate,
>-	    TP_PROTO(struct intel_plane *plane),
>-	    TP_ARGS(plane),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>-									 plane->pipe);
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>-);
>-
>-TRACE_EVENT(intel_fbc_deactivate,
>-	    TP_PROTO(struct intel_plane *plane),
>-	    TP_ARGS(plane),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>-									 plane->pipe);
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>-);
>-
>-TRACE_EVENT(intel_fbc_nuke,
>-	    TP_PROTO(struct intel_plane *plane),
>-	    TP_ARGS(plane),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>-									 plane->pipe);
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>-);
>-
>-/* pipe updates */
>-
>-TRACE_EVENT(intel_crtc_vblank_work_start,
>-	    TP_PROTO(struct intel_crtc *crtc),
>-	    TP_ARGS(crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		       __entry->scanline)
>-);
>-
>-TRACE_EVENT(intel_crtc_vblank_work_end,
>-	    TP_PROTO(struct intel_crtc *crtc),
>-	    TP_ARGS(crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		       __entry->scanline)
>-);
>-
>-TRACE_EVENT(intel_pipe_update_start,
>-	    TP_PROTO(struct intel_crtc *crtc),
>-	    TP_ARGS(crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __field(u32, min)
>-			     __field(u32, max)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>-			   __entry->min = crtc->debug.min_vbl;
>-			   __entry->max = crtc->debug.max_vbl;
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		       __entry->scanline, __entry->min, __entry->max)
>-);
>-
>-TRACE_EVENT(intel_pipe_update_vblank_evaded,
>-	    TP_PROTO(struct intel_crtc *crtc),
>-	    TP_ARGS(crtc),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     __field(u32, min)
>-			     __field(u32, max)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = crtc->debug.start_vbl_count;
>-			   __entry->scanline = crtc->debug.scanline_start;
>-			   __entry->min = crtc->debug.min_vbl;
>-			   __entry->max = crtc->debug.max_vbl;
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		       __entry->scanline, __entry->min, __entry->max)
>-);
>-
>-TRACE_EVENT(intel_pipe_update_end,
>-	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
>-	    TP_ARGS(crtc, frame, scanline_end),
>-
>-	    TP_STRUCT__entry(
>-			     __field(enum pipe, pipe)
>-			     __field(u32, frame)
>-			     __field(u32, scanline)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->pipe = crtc->pipe;
>-			   __entry->frame = frame;
>-			   __entry->scanline = scanline_end;
>-			   ),
>-
>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>-		      pipe_name(__entry->pipe), __entry->frame,
>-		      __entry->scanline)
>-);
>-
>-/* frontbuffer tracking */
>-
>-TRACE_EVENT(intel_frontbuffer_invalidate,
>-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>-	    TP_ARGS(frontbuffer_bits, origin),
>-
>-	    TP_STRUCT__entry(
>-			     __field(unsigned int, frontbuffer_bits)
>-			     __field(unsigned int, origin)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->frontbuffer_bits = frontbuffer_bits;
>-			   __entry->origin = origin;
>-			   ),
>-
>-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>-		      __entry->frontbuffer_bits, __entry->origin)
>-);
>-
>-TRACE_EVENT(intel_frontbuffer_flush,
>-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>-	    TP_ARGS(frontbuffer_bits, origin),
>-
>-	    TP_STRUCT__entry(
>-			     __field(unsigned int, frontbuffer_bits)
>-			     __field(unsigned int, origin)
>-			     ),
>-
>-	    TP_fast_assign(
>-			   __entry->frontbuffer_bits = frontbuffer_bits;
>-			   __entry->origin = origin;
>-			   ),
>-
>-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>-		      __entry->frontbuffer_bits, __entry->origin)
>-);
>-
> /* object tracking */
>
> TRACE_EVENT(i915_gem_object_create,
>diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>index fe3787425780..abad48e1690e 100644
>--- a/drivers/gpu/drm/i915/intel_pm.c
>+++ b/drivers/gpu/drm/i915/intel_pm.c
>@@ -36,6 +36,7 @@
> #include "display/intel_atomic_plane.h"
> #include "display/intel_bw.h"
> #include "display/intel_de.h"
>+#include "display/intel_display_trace.h"
> #include "display/intel_display_types.h"
> #include "display/intel_fb.h"
> #include "display/intel_fbc.h"
>@@ -47,7 +48,6 @@
> #include "i915_drv.h"
> #include "i915_fixed.h"
> #include "i915_irq.h"
>-#include "i915_trace.h"
> #include "intel_pcode.h"
> #include "intel_pm.h"
> #include "vlv_sideband.h"
>-- 
>2.30.2
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file
  2021-12-08 16:03   ` Lucas De Marchi
@ 2021-12-08 16:39     ` Jani Nikula
  2021-12-09  9:50       ` Jani Nikula
  2021-12-09 17:28       ` Lucas De Marchi
  0 siblings, 2 replies; 11+ messages in thread
From: Jani Nikula @ 2021-12-08 16:39 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-gfx

On Wed, 08 Dec 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> On Wed, Dec 08, 2021 at 01:05:17PM +0200, Jani Nikula wrote:
>>Add display/intel_display_trace.[ch] for defining display
>>tracepoints. The main goal is to reduce cross-includes between gem and
>>display. It would be possible split up tracing even further, but that
>>would lead to more boilerplate.
>>
>>We end up having to include intel_crtc.h in a few places because it was
>>pulled in implicitly via intel_de.h -> i915_trace.h -> intel_crtc.h, and
>>that's no longer the case.
>>
>>There should be no changes to tracepoints.
>>
>>v3:
>>- Rebase
>>
>>v2:
>>- Define TRACE_INCLUDE_PATH relative to define_trace.h (Chris)
>>- Remove useless comments (Ville)
>>
>>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
>
> only thing I noticed in the code move is that we lost the comments about
> grouping the tracepoints. Was this intentional? Example:

Yeah, specifically requested by Ville (see v2 changelog above).

BR,
Jani.


>
> 	/* watermark/fifo updates */
> 	...
> 	/* plane updates */
> 	...
> 	etc
>
>
> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
>
> Lucas De Marchi
>
>
>
>
>>---
>> drivers/gpu/drm/i915/Makefile                 |   1 +
>> drivers/gpu/drm/i915/display/g4x_dp.c         |   1 +
>> drivers/gpu/drm/i915/display/g4x_hdmi.c       |   1 +
>> .../gpu/drm/i915/display/intel_atomic_plane.c |   5 +-
>> drivers/gpu/drm/i915/display/intel_audio.c    |   1 +
>> drivers/gpu/drm/i915/display/intel_cdclk.c    |   1 +
>> drivers/gpu/drm/i915/display/intel_crtc.c     |   4 +-
>> .../drm/i915/display/intel_display_trace.c    |   9 +
>> .../drm/i915/display/intel_display_trace.h    | 587 ++++++++++++++++++
>> drivers/gpu/drm/i915/display/intel_dp.c       |   1 +
>> drivers/gpu/drm/i915/display/intel_fbc.c      |   2 +-
>> drivers/gpu/drm/i915/display/intel_fdi.c      |   1 +
>> .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
>> .../gpu/drm/i915/display/intel_frontbuffer.c  |   7 +-
>> drivers/gpu/drm/i915/display/intel_sprite.c   |   4 +-
>> drivers/gpu/drm/i915/display/intel_tv.c       |   1 +
>> drivers/gpu/drm/i915/display/intel_vdsc.c     |   4 +-
>> drivers/gpu/drm/i915/i915_debugfs.c           |   1 -
>> drivers/gpu/drm/i915/i915_driver.c            |   1 -
>> drivers/gpu/drm/i915/i915_irq.c               |   2 +-
>> drivers/gpu/drm/i915/i915_trace.h             | 573 -----------------
>> drivers/gpu/drm/i915/intel_pm.c               |   2 +-
>> 22 files changed, 621 insertions(+), 590 deletions(-)
>> create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.c
>> create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.h
>>
>>diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
>>index 3b5857da4123..6ddd2d2bbaaf 100644
>>--- a/drivers/gpu/drm/i915/Makefile
>>+++ b/drivers/gpu/drm/i915/Makefile
>>@@ -259,6 +259,7 @@ i915-y += \
>> 	display/intel_crt.o \
>> 	display/intel_ddi.o \
>> 	display/intel_ddi_buf_trans.o \
>>+	display/intel_display_trace.o \
>> 	display/intel_dp.o \
>> 	display/intel_dp_aux.o \
>> 	display/intel_dp_aux_backlight.o \
>>diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
>>index dc41868d01ef..f37677df6ebf 100644
>>--- a/drivers/gpu/drm/i915/display/g4x_dp.c
>>+++ b/drivers/gpu/drm/i915/display/g4x_dp.c
>>@@ -9,6 +9,7 @@
>> #include "intel_audio.h"
>> #include "intel_backlight.h"
>> #include "intel_connector.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_dp.h"
>>diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
>>index f5b4dd5b4275..06e00b1eaa7c 100644
>>--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
>>+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
>>@@ -8,6 +8,7 @@
>> #include "g4x_hdmi.h"
>> #include "intel_audio.h"
>> #include "intel_connector.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_dpio_phy.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>>index 27b8f99dd099..89005628cc3a 100644
>>--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>>+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>>@@ -35,15 +35,16 @@
>> #include <drm/drm_fourcc.h>
>> #include <drm/drm_plane_helper.h>
>>
>>-#include "i915_trace.h"
>>+#include "gt/intel_rps.h"
>>+
>> #include "intel_atomic_plane.h"
>> #include "intel_cdclk.h"
>>+#include "intel_display_trace.h"
>> #include "intel_display_types.h"
>> #include "intel_fb.h"
>> #include "intel_fb_pin.h"
>> #include "intel_pm.h"
>> #include "intel_sprite.h"
>>-#include "gt/intel_rps.h"
>>
>> static void intel_plane_state_reset(struct intel_plane_state *plane_state,
>> 				    struct intel_plane *plane)
>>diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
>>index 03c3111ebdf0..991170c803e1 100644
>>--- a/drivers/gpu/drm/i915/display/intel_audio.c
>>+++ b/drivers/gpu/drm/i915/display/intel_audio.c
>>@@ -31,6 +31,7 @@
>> #include "intel_atomic.h"
>> #include "intel_audio.h"
>> #include "intel_cdclk.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_lpe_audio.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
>>index a5569f21811c..639a64733f61 100644
>>--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
>>+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
>>@@ -27,6 +27,7 @@
>> #include "intel_audio.h"
>> #include "intel_bw.h"
>> #include "intel_cdclk.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_pcode.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
>>index 43554b591904..6930fbedc97d 100644
>>--- a/drivers/gpu/drm/i915/display/intel_crtc.c
>>+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
>>@@ -12,8 +12,8 @@
>> #include <drm/drm_plane_helper.h>
>> #include <drm/drm_vblank_work.h>
>>
>>-#include "i915_trace.h"
>> #include "i915_vgpu.h"
>>+#include "i9xx_plane.h"
>> #include "icl_dsi.h"
>> #include "intel_atomic.h"
>> #include "intel_atomic_plane.h"
>>@@ -21,13 +21,13 @@
>> #include "intel_crtc.h"
>> #include "intel_cursor.h"
>> #include "intel_display_debugfs.h"
>>+#include "intel_display_trace.h"
>> #include "intel_display_types.h"
>> #include "intel_dsi.h"
>> #include "intel_pipe_crc.h"
>> #include "intel_psr.h"
>> #include "intel_sprite.h"
>> #include "intel_vrr.h"
>>-#include "i9xx_plane.h"
>> #include "skl_universal_plane.h"
>>
>> static void assert_vblank_disabled(struct drm_crtc *crtc)
>>diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.c b/drivers/gpu/drm/i915/display/intel_display_trace.c
>>new file mode 100644
>>index 000000000000..737979ada869
>>--- /dev/null
>>+++ b/drivers/gpu/drm/i915/display/intel_display_trace.c
>>@@ -0,0 +1,9 @@
>>+// SPDX-License-Identifier: GPL-2.0
>>+/*
>>+ * Copyright © 2021 Intel Corporation
>>+ */
>>+
>>+#ifndef __CHECKER__
>>+#define CREATE_TRACE_POINTS
>>+#include "intel_display_trace.h"
>>+#endif
>>diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.h b/drivers/gpu/drm/i915/display/intel_display_trace.h
>>new file mode 100644
>>index 000000000000..4043e1276383
>>--- /dev/null
>>+++ b/drivers/gpu/drm/i915/display/intel_display_trace.h
>>@@ -0,0 +1,587 @@
>>+/* SPDX-License-Identifier: GPL-2.0 */
>>+/*
>>+ * Copyright © 2021 Intel Corporation
>>+ */
>>+
>>+#undef TRACE_SYSTEM
>>+#define TRACE_SYSTEM i915
>>+
>>+#if !defined(__INTEL_DISPLAY_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
>>+#define __INTEL_DISPLAY_TRACE_H__
>>+
>>+#include <linux/types.h>
>>+#include <linux/tracepoint.h>
>>+
>>+#include "i915_drv.h"
>>+#include "intel_crtc.h"
>>+#include "intel_display_types.h"
>>+
>>+TRACE_EVENT(intel_pipe_enable,
>>+	    TP_PROTO(struct intel_crtc *crtc),
>>+	    TP_ARGS(crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __array(u32, frame, 3)
>>+			     __array(u32, scanline, 3)
>>+			     __field(enum pipe, pipe)
>>+			     ),
>>+	    TP_fast_assign(
>>+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>+			   struct intel_crtc *it__;
>>+			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>+			   }
>>+			   __entry->pipe = crtc->pipe;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe),
>>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>+);
>>+
>>+TRACE_EVENT(intel_pipe_disable,
>>+	    TP_PROTO(struct intel_crtc *crtc),
>>+	    TP_ARGS(crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __array(u32, frame, 3)
>>+			     __array(u32, scanline, 3)
>>+			     __field(enum pipe, pipe)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>+			   struct intel_crtc *it__;
>>+			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>+			   }
>>+			   __entry->pipe = crtc->pipe;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe),
>>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>+);
>>+
>>+TRACE_EVENT(intel_pipe_crc,
>>+	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
>>+	    TP_ARGS(crtc, crcs),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __array(u32, crcs, 5)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>+		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
>>+		      __entry->crcs[3], __entry->crcs[4])
>>+);
>>+
>>+TRACE_EVENT(intel_cpu_fifo_underrun,
>>+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>>+	    TP_ARGS(dev_priv, pipe),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>+			   __entry->pipe = pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe),
>>+		      __entry->frame, __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_pch_fifo_underrun,
>>+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
>>+	    TP_ARGS(dev_priv, pch_transcoder),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   enum pipe pipe = pch_transcoder;
>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>+			   __entry->pipe = pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe),
>>+		      __entry->frame, __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_memory_cxsr,
>>+	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
>>+	    TP_ARGS(dev_priv, old, new),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __array(u32, frame, 3)
>>+			     __array(u32, scanline, 3)
>>+			     __field(bool, old)
>>+			     __field(bool, new)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   struct intel_crtc *crtc;
>>+			   for_each_intel_crtc(&dev_priv->drm, crtc) {
>>+				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
>>+				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
>>+			   }
>>+			   __entry->old = old;
>>+			   __entry->new = new;
>>+			   ),
>>+
>>+	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>+		      onoff(__entry->old), onoff(__entry->new),
>>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>+);
>>+
>>+TRACE_EVENT(g4x_wm,
>>+	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
>>+	    TP_ARGS(crtc, wm),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __field(u16, primary)
>>+			     __field(u16, sprite)
>>+			     __field(u16, cursor)
>>+			     __field(u16, sr_plane)
>>+			     __field(u16, sr_cursor)
>>+			     __field(u16, sr_fbc)
>>+			     __field(u16, hpll_plane)
>>+			     __field(u16, hpll_cursor)
>>+			     __field(u16, hpll_fbc)
>>+			     __field(bool, cxsr)
>>+			     __field(bool, hpll)
>>+			     __field(bool, fbc)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>+			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>+			   __entry->sr_plane = wm->sr.plane;
>>+			   __entry->sr_cursor = wm->sr.cursor;
>>+			   __entry->sr_fbc = wm->sr.fbc;
>>+			   __entry->hpll_plane = wm->hpll.plane;
>>+			   __entry->hpll_cursor = wm->hpll.cursor;
>>+			   __entry->hpll_fbc = wm->hpll.fbc;
>>+			   __entry->cxsr = wm->cxsr;
>>+			   __entry->hpll = wm->hpll_en;
>>+			   __entry->fbc = wm->fbc_en;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>+		      __entry->primary, __entry->sprite, __entry->cursor,
>>+		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
>>+		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
>>+		      yesno(__entry->fbc))
>>+);
>>+
>>+TRACE_EVENT(vlv_wm,
>>+	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
>>+	    TP_ARGS(crtc, wm),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __field(u32, level)
>>+			     __field(u32, cxsr)
>>+			     __field(u32, primary)
>>+			     __field(u32, sprite0)
>>+			     __field(u32, sprite1)
>>+			     __field(u32, cursor)
>>+			     __field(u32, sr_plane)
>>+			     __field(u32, sr_cursor)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   __entry->level = wm->level;
>>+			   __entry->cxsr = wm->cxsr;
>>+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>+			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>+			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
>>+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>+			   __entry->sr_plane = wm->sr.plane;
>>+			   __entry->sr_cursor = wm->sr.cursor;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		      __entry->scanline, __entry->level, __entry->cxsr,
>>+		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
>>+		      __entry->sr_plane, __entry->sr_cursor)
>>+);
>>+
>>+TRACE_EVENT(vlv_fifo_size,
>>+	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
>>+	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __field(u32, sprite0_start)
>>+			     __field(u32, sprite1_start)
>>+			     __field(u32, fifo_size)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   __entry->sprite0_start = sprite0_start;
>>+			   __entry->sprite1_start = sprite1_start;
>>+			   __entry->fifo_size = fifo_size;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		      __entry->scanline, __entry->sprite0_start,
>>+		      __entry->sprite1_start, __entry->fifo_size)
>>+);
>>+
>>+TRACE_EVENT(intel_plane_update_noarm,
>>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>+	    TP_ARGS(plane, crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __array(int, src, 4)
>>+			     __array(int, dst, 4)
>>+			     __string(name, plane->name)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __assign_str(name, plane->name);
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>+		      pipe_name(__entry->pipe), __get_str(name),
>>+		      __entry->frame, __entry->scanline,
>>+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>+);
>>+
>>+TRACE_EVENT(intel_plane_update_arm,
>>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>+	    TP_ARGS(plane, crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __array(int, src, 4)
>>+			     __array(int, dst, 4)
>>+			     __string(name, plane->name)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __assign_str(name, plane->name);
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>+		      pipe_name(__entry->pipe), __get_str(name),
>>+		      __entry->frame, __entry->scanline,
>>+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>+);
>>+
>>+TRACE_EVENT(intel_plane_disable_arm,
>>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>+	    TP_ARGS(plane, crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __string(name, plane->name)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __assign_str(name, plane->name);
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __get_str(name),
>>+		      __entry->frame, __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_fbc_activate,
>>+	    TP_PROTO(struct intel_plane *plane),
>>+	    TP_ARGS(plane),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>+									 plane->pipe);
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_fbc_deactivate,
>>+	    TP_PROTO(struct intel_plane *plane),
>>+	    TP_ARGS(plane),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>+									 plane->pipe);
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_fbc_nuke,
>>+	    TP_PROTO(struct intel_plane *plane),
>>+	    TP_ARGS(plane),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>+									 plane->pipe);
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_crtc_vblank_work_start,
>>+	    TP_PROTO(struct intel_crtc *crtc),
>>+	    TP_ARGS(crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		       __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_crtc_vblank_work_end,
>>+	    TP_PROTO(struct intel_crtc *crtc),
>>+	    TP_ARGS(crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		       __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_pipe_update_start,
>>+	    TP_PROTO(struct intel_crtc *crtc),
>>+	    TP_ARGS(crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __field(u32, min)
>>+			     __field(u32, max)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>+			   __entry->min = crtc->debug.min_vbl;
>>+			   __entry->max = crtc->debug.max_vbl;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		       __entry->scanline, __entry->min, __entry->max)
>>+);
>>+
>>+TRACE_EVENT(intel_pipe_update_vblank_evaded,
>>+	    TP_PROTO(struct intel_crtc *crtc),
>>+	    TP_ARGS(crtc),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     __field(u32, min)
>>+			     __field(u32, max)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = crtc->debug.start_vbl_count;
>>+			   __entry->scanline = crtc->debug.scanline_start;
>>+			   __entry->min = crtc->debug.min_vbl;
>>+			   __entry->max = crtc->debug.max_vbl;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		       __entry->scanline, __entry->min, __entry->max)
>>+);
>>+
>>+TRACE_EVENT(intel_pipe_update_end,
>>+	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
>>+	    TP_ARGS(crtc, frame, scanline_end),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(enum pipe, pipe)
>>+			     __field(u32, frame)
>>+			     __field(u32, scanline)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->pipe = crtc->pipe;
>>+			   __entry->frame = frame;
>>+			   __entry->scanline = scanline_end;
>>+			   ),
>>+
>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>+		      pipe_name(__entry->pipe), __entry->frame,
>>+		      __entry->scanline)
>>+);
>>+
>>+TRACE_EVENT(intel_frontbuffer_invalidate,
>>+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>+	    TP_ARGS(frontbuffer_bits, origin),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(unsigned int, frontbuffer_bits)
>>+			     __field(unsigned int, origin)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->frontbuffer_bits = frontbuffer_bits;
>>+			   __entry->origin = origin;
>>+			   ),
>>+
>>+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>+		      __entry->frontbuffer_bits, __entry->origin)
>>+);
>>+
>>+TRACE_EVENT(intel_frontbuffer_flush,
>>+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>+	    TP_ARGS(frontbuffer_bits, origin),
>>+
>>+	    TP_STRUCT__entry(
>>+			     __field(unsigned int, frontbuffer_bits)
>>+			     __field(unsigned int, origin)
>>+			     ),
>>+
>>+	    TP_fast_assign(
>>+			   __entry->frontbuffer_bits = frontbuffer_bits;
>>+			   __entry->origin = origin;
>>+			   ),
>>+
>>+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>+		      __entry->frontbuffer_bits, __entry->origin)
>>+);
>>+
>>+#endif /* __INTEL_DISPLAY_TRACE_H__ */
>>+
>>+/* This part must be outside protection */
>>+#undef TRACE_INCLUDE_PATH
>>+#undef TRACE_INCLUDE_FILE
>>+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
>>+#define TRACE_INCLUDE_FILE intel_display_trace
>>+#include <trace/define_trace.h>
>>diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>>index a24831acb7da..b5e2508db1cf 100644
>>--- a/drivers/gpu/drm/i915/display/intel_dp.c
>>+++ b/drivers/gpu/drm/i915/display/intel_dp.c
>>@@ -47,6 +47,7 @@
>> #include "intel_audio.h"
>> #include "intel_backlight.h"
>> #include "intel_connector.h"
>>+#include "intel_crtc.h"
>> #include "intel_ddi.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
>>index 6efbef7a1fc0..8be01b93015f 100644
>>--- a/drivers/gpu/drm/i915/display/intel_fbc.c
>>+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
>>@@ -41,10 +41,10 @@
>> #include <drm/drm_fourcc.h>
>>
>> #include "i915_drv.h"
>>-#include "i915_trace.h"
>> #include "i915_vgpu.h"
>> #include "intel_cdclk.h"
>> #include "intel_de.h"
>>+#include "intel_display_trace.h"
>> #include "intel_display_types.h"
>> #include "intel_fbc.h"
>> #include "intel_frontbuffer.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c
>>index be77be626420..3d6e22923601 100644
>>--- a/drivers/gpu/drm/i915/display/intel_fdi.c
>>+++ b/drivers/gpu/drm/i915/display/intel_fdi.c
>>@@ -4,6 +4,7 @@
>>  */
>>
>> #include "intel_atomic.h"
>>+#include "intel_crtc.h"
>> #include "intel_ddi.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>>index 76045ce84739..d636d21fa9ce 100644
>>--- a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>>+++ b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>>@@ -26,8 +26,8 @@
>>  */
>>
>> #include "i915_drv.h"
>>-#include "i915_trace.h"
>> #include "intel_de.h"
>>+#include "intel_display_trace.h"
>> #include "intel_display_types.h"
>> #include "intel_fbc.h"
>> #include "intel_fifo_underrun.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>>index 0492446cd04a..791248f812aa 100644
>>--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>>+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>>@@ -55,14 +55,13 @@
>>  * cancelled as soon as busyness is detected.
>>  */
>>
>>-#include "display/intel_dp.h"
>>-
>> #include "i915_drv.h"
>>-#include "i915_trace.h"
>>+#include "intel_display_trace.h"
>> #include "intel_display_types.h"
>>+#include "intel_dp.h"
>>+#include "intel_drrs.h"
>> #include "intel_fbc.h"
>> #include "intel_frontbuffer.h"
>>-#include "intel_drrs.h"
>> #include "intel_psr.h"
>>
>> /**
>>diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
>>index 926f5cdc65fd..2357a1301f48 100644
>>--- a/drivers/gpu/drm/i915/display/intel_sprite.c
>>+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
>>@@ -40,15 +40,15 @@
>> #include <drm/drm_rect.h>
>>
>> #include "i915_drv.h"
>>-#include "i915_trace.h"
>> #include "i915_vgpu.h"
>>+#include "i9xx_plane.h"
>> #include "intel_atomic_plane.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_fb.h"
>> #include "intel_frontbuffer.h"
>> #include "intel_sprite.h"
>>-#include "i9xx_plane.h"
>> #include "intel_vrr.h"
>>
>> int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
>>diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
>>index fc77947dc3d5..8a39989b87ad 100644
>>--- a/drivers/gpu/drm/i915/display/intel_tv.c
>>+++ b/drivers/gpu/drm/i915/display/intel_tv.c
>>@@ -36,6 +36,7 @@
>>
>> #include "i915_drv.h"
>> #include "intel_connector.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_hotplug.h"
>>diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
>>index c6851b0e0bed..1cc4170e6ec8 100644
>>--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
>>+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
>>@@ -6,12 +6,14 @@
>>  *         Manasi Navare <manasi.d.navare@intel.com>
>>  */
>> #include <linux/limits.h>
>>+
>> #include "i915_drv.h"
>>+#include "intel_crtc.h"
>> #include "intel_de.h"
>> #include "intel_display_types.h"
>> #include "intel_dsi.h"
>>-#include "intel_vdsc.h"
>> #include "intel_qp_tables.h"
>>+#include "intel_vdsc.h"
>>
>> enum ROW_INDEX_BPP {
>> 	ROW_INDEX_6BPP = 0,
>>diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>>index 390d541f64ea..bafb902269de 100644
>>--- a/drivers/gpu/drm/i915/i915_debugfs.c
>>+++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>@@ -48,7 +48,6 @@
>> #include "i915_debugfs_params.h"
>> #include "i915_irq.h"
>> #include "i915_scheduler.h"
>>-#include "i915_trace.h"
>> #include "intel_pm.h"
>>
>> static inline struct drm_i915_private *node_to_i915(struct drm_info_node *node)
>>diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
>>index bbc99fc5888f..e9125f14b3d1 100644
>>--- a/drivers/gpu/drm/i915/i915_driver.c
>>+++ b/drivers/gpu/drm/i915/i915_driver.c
>>@@ -82,7 +82,6 @@
>> #include "i915_suspend.h"
>> #include "i915_switcheroo.h"
>> #include "i915_sysfs.h"
>>-#include "i915_trace.h"
>> #include "i915_vgpu.h"
>> #include "intel_dram.h"
>> #include "intel_gvt.h"
>>diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>>index d0be94456bd8..5b98fb0532b5 100644
>>--- a/drivers/gpu/drm/i915/i915_irq.c
>>+++ b/drivers/gpu/drm/i915/i915_irq.c
>>@@ -35,6 +35,7 @@
>> #include <drm/drm_drv.h>
>>
>> #include "display/intel_de.h"
>>+#include "display/intel_display_trace.h"
>> #include "display/intel_display_types.h"
>> #include "display/intel_fifo_underrun.h"
>> #include "display/intel_hotplug.h"
>>@@ -49,7 +50,6 @@
>>
>> #include "i915_drv.h"
>> #include "i915_irq.h"
>>-#include "i915_trace.h"
>> #include "intel_pm.h"
>>
>> /**
>>diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
>>index a07bed5333cc..37b5c9e9d260 100644
>>--- a/drivers/gpu/drm/i915/i915_trace.h
>>+++ b/drivers/gpu/drm/i915/i915_trace.h
>>@@ -12,584 +12,11 @@
>>
>> #include <drm/drm_drv.h>
>>
>>-#include "display/intel_crtc.h"
>>-#include "display/intel_display_types.h"
>> #include "gt/intel_engine.h"
>>
>> #include "i915_drv.h"
>> #include "i915_irq.h"
>>
>>-/* watermark/fifo updates */
>>-
>>-TRACE_EVENT(intel_pipe_enable,
>>-	    TP_PROTO(struct intel_crtc *crtc),
>>-	    TP_ARGS(crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __array(u32, frame, 3)
>>-			     __array(u32, scanline, 3)
>>-			     __field(enum pipe, pipe)
>>-			     ),
>>-	    TP_fast_assign(
>>-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>-			   struct intel_crtc *it__;
>>-			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>-			   }
>>-			   __entry->pipe = crtc->pipe;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe),
>>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>-);
>>-
>>-TRACE_EVENT(intel_pipe_disable,
>>-	    TP_PROTO(struct intel_crtc *crtc),
>>-	    TP_ARGS(crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __array(u32, frame, 3)
>>-			     __array(u32, scanline, 3)
>>-			     __field(enum pipe, pipe)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>-			   struct intel_crtc *it__;
>>-			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>-			   }
>>-			   __entry->pipe = crtc->pipe;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe),
>>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>-);
>>-
>>-TRACE_EVENT(intel_pipe_crc,
>>-	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
>>-	    TP_ARGS(crtc, crcs),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __array(u32, crcs, 5)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>-		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
>>-		      __entry->crcs[3], __entry->crcs[4])
>>-);
>>-
>>-TRACE_EVENT(intel_cpu_fifo_underrun,
>>-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>>-	    TP_ARGS(dev_priv, pipe),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>-			   __entry->pipe = pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe),
>>-		      __entry->frame, __entry->scanline)
>>-);
>>-
>>-TRACE_EVENT(intel_pch_fifo_underrun,
>>-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
>>-	    TP_ARGS(dev_priv, pch_transcoder),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   enum pipe pipe = pch_transcoder;
>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>-			   __entry->pipe = pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe),
>>-		      __entry->frame, __entry->scanline)
>>-);
>>-
>>-TRACE_EVENT(intel_memory_cxsr,
>>-	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
>>-	    TP_ARGS(dev_priv, old, new),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __array(u32, frame, 3)
>>-			     __array(u32, scanline, 3)
>>-			     __field(bool, old)
>>-			     __field(bool, new)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   struct intel_crtc *crtc;
>>-			   for_each_intel_crtc(&dev_priv->drm, crtc) {
>>-				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
>>-				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
>>-			   }
>>-			   __entry->old = old;
>>-			   __entry->new = new;
>>-			   ),
>>-
>>-	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>-		      onoff(__entry->old), onoff(__entry->new),
>>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>-);
>>-
>>-TRACE_EVENT(g4x_wm,
>>-	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
>>-	    TP_ARGS(crtc, wm),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __field(u16, primary)
>>-			     __field(u16, sprite)
>>-			     __field(u16, cursor)
>>-			     __field(u16, sr_plane)
>>-			     __field(u16, sr_cursor)
>>-			     __field(u16, sr_fbc)
>>-			     __field(u16, hpll_plane)
>>-			     __field(u16, hpll_cursor)
>>-			     __field(u16, hpll_fbc)
>>-			     __field(bool, cxsr)
>>-			     __field(bool, hpll)
>>-			     __field(bool, fbc)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>-			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>-			   __entry->sr_plane = wm->sr.plane;
>>-			   __entry->sr_cursor = wm->sr.cursor;
>>-			   __entry->sr_fbc = wm->sr.fbc;
>>-			   __entry->hpll_plane = wm->hpll.plane;
>>-			   __entry->hpll_cursor = wm->hpll.cursor;
>>-			   __entry->hpll_fbc = wm->hpll.fbc;
>>-			   __entry->cxsr = wm->cxsr;
>>-			   __entry->hpll = wm->hpll_en;
>>-			   __entry->fbc = wm->fbc_en;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>-		      __entry->primary, __entry->sprite, __entry->cursor,
>>-		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
>>-		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
>>-		      yesno(__entry->fbc))
>>-);
>>-
>>-TRACE_EVENT(vlv_wm,
>>-	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
>>-	    TP_ARGS(crtc, wm),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __field(u32, level)
>>-			     __field(u32, cxsr)
>>-			     __field(u32, primary)
>>-			     __field(u32, sprite0)
>>-			     __field(u32, sprite1)
>>-			     __field(u32, cursor)
>>-			     __field(u32, sr_plane)
>>-			     __field(u32, sr_cursor)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   __entry->level = wm->level;
>>-			   __entry->cxsr = wm->cxsr;
>>-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>-			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>-			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
>>-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>-			   __entry->sr_plane = wm->sr.plane;
>>-			   __entry->sr_cursor = wm->sr.cursor;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		      __entry->scanline, __entry->level, __entry->cxsr,
>>-		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
>>-		      __entry->sr_plane, __entry->sr_cursor)
>>-);
>>-
>>-TRACE_EVENT(vlv_fifo_size,
>>-	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
>>-	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __field(u32, sprite0_start)
>>-			     __field(u32, sprite1_start)
>>-			     __field(u32, fifo_size)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   __entry->sprite0_start = sprite0_start;
>>-			   __entry->sprite1_start = sprite1_start;
>>-			   __entry->fifo_size = fifo_size;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		      __entry->scanline, __entry->sprite0_start,
>>-		      __entry->sprite1_start, __entry->fifo_size)
>>-);
>>-
>>-/* plane updates */
>>-
>>-TRACE_EVENT(intel_plane_update_noarm,
>>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>-	    TP_ARGS(plane, crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __array(int, src, 4)
>>-			     __array(int, dst, 4)
>>-			     __string(name, plane->name)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __assign_str(name, plane->name);
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>-		      pipe_name(__entry->pipe), __get_str(name),
>>-		      __entry->frame, __entry->scanline,
>>-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>-);
>>-
>>-TRACE_EVENT(intel_plane_update_arm,
>>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>-	    TP_ARGS(plane, crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __array(int, src, 4)
>>-			     __array(int, dst, 4)
>>-			     __string(name, plane->name)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __assign_str(name, plane->name);
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>-		      pipe_name(__entry->pipe), __get_str(name),
>>-		      __entry->frame, __entry->scanline,
>>-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>-);
>>-
>>-TRACE_EVENT(intel_plane_disable_arm,
>>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>-	    TP_ARGS(plane, crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __string(name, plane->name)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __assign_str(name, plane->name);
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __get_str(name),
>>-		      __entry->frame, __entry->scanline)
>>-);
>>-
>>-/* fbc */
>>-
>>-TRACE_EVENT(intel_fbc_activate,
>>-	    TP_PROTO(struct intel_plane *plane),
>>-	    TP_ARGS(plane),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>-									 plane->pipe);
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>-);
>>-
>>-TRACE_EVENT(intel_fbc_deactivate,
>>-	    TP_PROTO(struct intel_plane *plane),
>>-	    TP_ARGS(plane),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>-									 plane->pipe);
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>-);
>>-
>>-TRACE_EVENT(intel_fbc_nuke,
>>-	    TP_PROTO(struct intel_plane *plane),
>>-	    TP_ARGS(plane),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>-									 plane->pipe);
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>-);
>>-
>>-/* pipe updates */
>>-
>>-TRACE_EVENT(intel_crtc_vblank_work_start,
>>-	    TP_PROTO(struct intel_crtc *crtc),
>>-	    TP_ARGS(crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		       __entry->scanline)
>>-);
>>-
>>-TRACE_EVENT(intel_crtc_vblank_work_end,
>>-	    TP_PROTO(struct intel_crtc *crtc),
>>-	    TP_ARGS(crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		       __entry->scanline)
>>-);
>>-
>>-TRACE_EVENT(intel_pipe_update_start,
>>-	    TP_PROTO(struct intel_crtc *crtc),
>>-	    TP_ARGS(crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __field(u32, min)
>>-			     __field(u32, max)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>-			   __entry->min = crtc->debug.min_vbl;
>>-			   __entry->max = crtc->debug.max_vbl;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		       __entry->scanline, __entry->min, __entry->max)
>>-);
>>-
>>-TRACE_EVENT(intel_pipe_update_vblank_evaded,
>>-	    TP_PROTO(struct intel_crtc *crtc),
>>-	    TP_ARGS(crtc),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     __field(u32, min)
>>-			     __field(u32, max)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = crtc->debug.start_vbl_count;
>>-			   __entry->scanline = crtc->debug.scanline_start;
>>-			   __entry->min = crtc->debug.min_vbl;
>>-			   __entry->max = crtc->debug.max_vbl;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		       __entry->scanline, __entry->min, __entry->max)
>>-);
>>-
>>-TRACE_EVENT(intel_pipe_update_end,
>>-	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
>>-	    TP_ARGS(crtc, frame, scanline_end),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(enum pipe, pipe)
>>-			     __field(u32, frame)
>>-			     __field(u32, scanline)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->pipe = crtc->pipe;
>>-			   __entry->frame = frame;
>>-			   __entry->scanline = scanline_end;
>>-			   ),
>>-
>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>-		      pipe_name(__entry->pipe), __entry->frame,
>>-		      __entry->scanline)
>>-);
>>-
>>-/* frontbuffer tracking */
>>-
>>-TRACE_EVENT(intel_frontbuffer_invalidate,
>>-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>-	    TP_ARGS(frontbuffer_bits, origin),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(unsigned int, frontbuffer_bits)
>>-			     __field(unsigned int, origin)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->frontbuffer_bits = frontbuffer_bits;
>>-			   __entry->origin = origin;
>>-			   ),
>>-
>>-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>-		      __entry->frontbuffer_bits, __entry->origin)
>>-);
>>-
>>-TRACE_EVENT(intel_frontbuffer_flush,
>>-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>-	    TP_ARGS(frontbuffer_bits, origin),
>>-
>>-	    TP_STRUCT__entry(
>>-			     __field(unsigned int, frontbuffer_bits)
>>-			     __field(unsigned int, origin)
>>-			     ),
>>-
>>-	    TP_fast_assign(
>>-			   __entry->frontbuffer_bits = frontbuffer_bits;
>>-			   __entry->origin = origin;
>>-			   ),
>>-
>>-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>-		      __entry->frontbuffer_bits, __entry->origin)
>>-);
>>-
>> /* object tracking */
>>
>> TRACE_EVENT(i915_gem_object_create,
>>diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>>index fe3787425780..abad48e1690e 100644
>>--- a/drivers/gpu/drm/i915/intel_pm.c
>>+++ b/drivers/gpu/drm/i915/intel_pm.c
>>@@ -36,6 +36,7 @@
>> #include "display/intel_atomic_plane.h"
>> #include "display/intel_bw.h"
>> #include "display/intel_de.h"
>>+#include "display/intel_display_trace.h"
>> #include "display/intel_display_types.h"
>> #include "display/intel_fb.h"
>> #include "display/intel_fbc.h"
>>@@ -47,7 +48,6 @@
>> #include "i915_drv.h"
>> #include "i915_fixed.h"
>> #include "i915_irq.h"
>>-#include "i915_trace.h"
>> #include "intel_pcode.h"
>> #include "intel_pm.h"
>> #include "vlv_sideband.h"
>>-- 
>>2.30.2
>>

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: trace display split
  2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
                   ` (4 preceding siblings ...)
  2021-12-08 14:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2021-12-08 18:18 ` Patchwork
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2021-12-08 18:18 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 30252 bytes --]

== Series Details ==

Series: drm/i915: trace display split
URL   : https://patchwork.freedesktop.org/series/97721/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10973_full -> Patchwork_21785_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_21785_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_21785_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (11 -> 10)
------------------------------

  Missing    (1): pig-kbl-iris 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_21785_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@reset-stress:
    - shard-snb:          [PASS][1] -> [TIMEOUT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-snb6/igt@gem_eio@reset-stress.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-snb6/igt@gem_eio@reset-stress.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
    - shard-tglb:         [PASS][3] -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-tglb7/igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb8/igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence.html

  
Known issues
------------

  Here are the changes found in Patchwork_21785_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-apl:          [PASS][5] -> [DMESG-WARN][6] ([i915#180]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-apl1/igt@gem_ctx_isolation@preservation-s3@rcs0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-apl8/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_exec_balancer@parallel-keep-submit-fence:
    - shard-tglb:         NOTRUN -> [SKIP][7] ([i915#4525])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@gem_exec_balancer@parallel-keep-submit-fence.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-apl:          [PASS][8] -> [FAIL][9] ([i915#2842])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-apl6/igt@gem_exec_fair@basic-none@vecs0.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-apl4/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [PASS][10] -> [FAIL][11] ([i915#2842]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-glk9/igt@gem_exec_fair@basic-throttle@rcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-glk2/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_flush@basic-uc-pro-default:
    - shard-skl:          [PASS][12] -> [DMESG-WARN][13] ([i915#1982])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-skl1/igt@gem_exec_flush@basic-uc-pro-default.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl6/igt@gem_exec_flush@basic-uc-pro-default.html

  * igt@gem_exec_whisper@basic-queues:
    - shard-glk:          [PASS][14] -> [DMESG-WARN][15] ([i915#118])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-glk2/igt@gem_exec_whisper@basic-queues.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-glk8/igt@gem_exec_whisper@basic-queues.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-skl:          NOTRUN -> [SKIP][16] ([fdo#109271] / [i915#4613]) +1 similar issue
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl4/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-tglb:         NOTRUN -> [SKIP][17] ([i915#4613])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][19] ([i915#3297]) +2 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-iclb:         NOTRUN -> [SKIP][20] ([i915#3297])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gen9_exec_parse@bb-start-far:
    - shard-iclb:         NOTRUN -> [SKIP][21] ([i915#2856])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@gen9_exec_parse@bb-start-far.html
    - shard-tglb:         NOTRUN -> [SKIP][22] ([i915#2856])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@gen9_exec_parse@bb-start-far.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-glk:          [PASS][23] -> [FAIL][24] ([i915#2521])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-glk6/igt@kms_async_flips@alternate-sync-async-flip.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-glk6/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-skl:          NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#3777])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][26] ([fdo#111615]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html
    - shard-iclb:         NOTRUN -> [SKIP][27] ([fdo#110723])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-kbl:          NOTRUN -> [SKIP][28] ([fdo#109271]) +55 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][29] ([fdo#109278] / [i915#3886])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
    - shard-tglb:         NOTRUN -> [SKIP][30] ([i915#3689] / [i915#3886])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#3886]) +4 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-skl:          NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#3886]) +5 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl4/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][33] ([fdo#111615] / [i915#3689])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_ccs@pipe-d-bad-aux-stride-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#3689]) +3 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs.html

  * igt@kms_chamelium@dp-hpd-storm-disable:
    - shard-tglb:         NOTRUN -> [SKIP][35] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@kms_chamelium@dp-hpd-storm-disable.html

  * igt@kms_chamelium@hdmi-hpd-storm:
    - shard-kbl:          NOTRUN -> [SKIP][36] ([fdo#109271] / [fdo#111827]) +6 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@kms_chamelium@hdmi-hpd-storm.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-5:
    - shard-skl:          NOTRUN -> [SKIP][37] ([fdo#109271] / [fdo#111827]) +11 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl2/igt@kms_color_chamelium@pipe-d-ctm-0-5.html

  * igt@kms_content_protection@srm:
    - shard-tglb:         NOTRUN -> [SKIP][38] ([fdo#111828])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_content_protection@srm.html
    - shard-iclb:         NOTRUN -> [SKIP][39] ([fdo#109300] / [fdo#111066])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x170-sliding:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#109279] / [i915#3359])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_cursor_crc@pipe-a-cursor-512x170-sliding.html
    - shard-iclb:         NOTRUN -> [SKIP][41] ([fdo#109278] / [fdo#109279])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_cursor_crc@pipe-a-cursor-512x170-sliding.html

  * igt@kms_cursor_crc@pipe-a-cursor-max-size-sliding:
    - shard-iclb:         NOTRUN -> [SKIP][42] ([fdo#109278]) +9 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_cursor_crc@pipe-a-cursor-max-size-sliding.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-sliding:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3319])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-32x32-sliding.html

  * igt@kms_cursor_crc@pipe-c-cursor-max-size-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#3359]) +3 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-max-size-offscreen.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][45] ([i915#4103])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-iclb:         NOTRUN -> [SKIP][46] ([fdo#109274] / [fdo#109278])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-skl:          [PASS][47] -> [FAIL][48] ([i915#2346])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-skl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl10/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [PASS][49] -> [INCOMPLETE][50] ([i915#180] / [i915#636])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-kbl6/igt@kms_fbcon_fbt@fbc-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl4/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-flip-vs-blocking-wf-vblank:
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#109274]) +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1:
    - shard-glk:          [PASS][52] -> [FAIL][53] ([i915#79]) +1 similar issue
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-glk9/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-glk2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend@b-dp1:
    - shard-kbl:          [PASS][54] -> [INCOMPLETE][55] ([i915#636])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-kbl7/igt@kms_flip@flip-vs-suspend@b-dp1.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl3/igt@kms_flip@flip-vs-suspend@b-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs:
    - shard-skl:          NOTRUN -> [SKIP][56] ([fdo#109271] / [i915#2672])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#2587])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:
    - shard-skl:          NOTRUN -> [SKIP][58] ([fdo#109271]) +138 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#109280]) +6 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([fdo#111825]) +18 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-kbl:          [PASS][61] -> [DMESG-WARN][62] ([i915#180]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-kbl1/igt@kms_hdr@bpc-switch-suspend.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl6/igt@kms_hdr@bpc-switch-suspend.html
    - shard-skl:          NOTRUN -> [FAIL][63] ([i915#1188])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl8/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#1839])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
    - shard-iclb:         NOTRUN -> [SKIP][65] ([i915#1839])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-d:
    - shard-kbl:          NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#533])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@kms_pipe_crc_basic@hang-read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
    - shard-skl:          NOTRUN -> [FAIL][67] ([fdo#108145] / [i915#265])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:
    - shard-skl:          NOTRUN -> [FAIL][68] ([i915#265])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-kbl:          NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#658]) +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
    - shard-skl:          NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#658]) +4 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl4/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html

  * igt@kms_psr@psr2_dpms:
    - shard-tglb:         NOTRUN -> [FAIL][71] ([i915#132] / [i915#3467])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_psr@psr2_dpms.html
    - shard-iclb:         NOTRUN -> [SKIP][72] ([fdo#109441])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_psr@psr2_dpms.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][73] -> [SKIP][74] ([fdo#109441])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb7/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_sysfs_edid_timing:
    - shard-skl:          NOTRUN -> [FAIL][75] ([IGT#2])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl2/igt@kms_sysfs_edid_timing.html

  * igt@kms_writeback@writeback-check-output:
    - shard-iclb:         NOTRUN -> [SKIP][76] ([i915#2437])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@kms_writeback@writeback-check-output.html
    - shard-tglb:         NOTRUN -> [SKIP][77] ([i915#2437])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@kms_writeback@writeback-check-output.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-skl:          NOTRUN -> [SKIP][78] ([fdo#109271] / [i915#2437])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl4/igt@kms_writeback@writeback-fb-id.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-kbl:          NOTRUN -> [SKIP][79] ([fdo#109271] / [i915#2437])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl1/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@nouveau_crc@pipe-d-source-outp-inactive:
    - shard-tglb:         NOTRUN -> [SKIP][80] ([i915#2530])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@nouveau_crc@pipe-d-source-outp-inactive.html

  * igt@sysfs_clients@busy:
    - shard-skl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#2994]) +2 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl2/igt@sysfs_clients@busy.html

  * igt@sysfs_clients@split-10:
    - shard-iclb:         NOTRUN -> [SKIP][82] ([i915#2994])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb5/igt@sysfs_clients@split-10.html
    - shard-tglb:         NOTRUN -> [SKIP][83] ([i915#2994])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb5/igt@sysfs_clients@split-10.html
    - shard-kbl:          NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#2994])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl2/igt@sysfs_clients@split-10.html

  
#### Possible fixes ####

  * igt@drm_import_export@prime:
    - shard-tglb:         [INCOMPLETE][85] ([i915#750]) -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-tglb5/igt@drm_import_export@prime.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-tglb7/igt@drm_import_export@prime.html

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-apl:          [TIMEOUT][87] ([i915#3063]) -> [PASS][88]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-apl2/igt@gem_eio@in-flight-contexts-immediate.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-apl3/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         [FAIL][89] ([i915#2842]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-iclb1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-iclb7/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-apl:          [FAIL][91] ([i915#2842]) -> [PASS][92]
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-apl6/igt@gem_exec_fair@basic-none@vcs0.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-apl4/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - {shard-rkl}:        [FAIL][93] ([i915#2842]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-2/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@i915_pm_backlight@basic-brightness:
    - {shard-rkl}:        [SKIP][95] ([i915#3012]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@i915_pm_backlight@basic-brightness.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_rpm@drm-resources-equal:
    - {shard-rkl}:        [SKIP][97] ([fdo#109308]) -> [PASS][98] +1 similar issue
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@i915_pm_rpm@drm-resources-equal.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@i915_pm_rpm@drm-resources-equal.html

  * igt@i915_suspend@forcewake:
    - shard-kbl:          [DMESG-WARN][99] ([i915#180]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-kbl4/igt@i915_suspend@forcewake.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-kbl7/igt@i915_suspend@forcewake.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-apl:          [FAIL][101] ([i915#2521]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-apl3/igt@kms_async_flips@alternate-sync-async-flip.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-apl6/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_atomic@test-only:
    - {shard-rkl}:        [SKIP][103] ([i915#1845]) -> [PASS][104] +18 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@kms_atomic@test-only.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_atomic@test-only.html

  * igt@kms_big_fb@linear-64bpp-rotate-180:
    - {shard-rkl}:        ([SKIP][105], [SKIP][106]) ([i915#1845]) -> [PASS][107]
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-4/igt@kms_big_fb@linear-64bpp-rotate-180.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@kms_big_fb@linear-64bpp-rotate-180.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_big_fb@linear-64bpp-rotate-180.html

  * igt@kms_color@pipe-a-ctm-0-5:
    - {shard-rkl}:        [SKIP][108] ([i915#1149] / [i915#1849] / [i915#4070]) -> [PASS][109] +2 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@kms_color@pipe-a-ctm-0-5.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_color@pipe-a-ctm-0-5.html

  * igt@kms_color@pipe-b-ctm-0-5:
    - {shard-rkl}:        ([SKIP][110], [SKIP][111]) ([i915#1149] / [i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][112]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@kms_color@pipe-b-ctm-0-5.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-4/igt@kms_color@pipe-b-ctm-0-5.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_color@pipe-b-ctm-0-5.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x256-rapid-movement:
    - {shard-rkl}:        [SKIP][113] ([fdo#112022] / [i915#4070]) -> [PASS][114] +7 similar issues
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@kms_cursor_crc@pipe-a-cursor-256x256-rapid-movement.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_cursor_crc@pipe-a-cursor-256x256-rapid-movement.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-random:
    - {shard-rkl}:        ([PASS][115], [SKIP][116]) ([fdo#112022]) -> [PASS][117]
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-6/igt@kms_cursor_crc@pipe-b-cursor-64x21-random.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-4/igt@kms_cursor_crc@pipe-b-cursor-64x21-random.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_cursor_crc@pipe-b-cursor-64x21-random.html

  * igt@kms_cursor_legacy@cursor-vs-flip-legacy:
    - {shard-rkl}:        [SKIP][118] ([fdo#111825] / [i915#4070]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@kms_cursor_legacy@cursor-vs-flip-legacy.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_cursor_legacy@cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-skl:          [FAIL][120] ([i915#2346] / [i915#533]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-skl7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-varying-size:
    - shard-apl:          [FAIL][122] ([i915#2346]) -> [PASS][123]
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled:
    - {shard-rkl}:        [SKIP][124] ([fdo#111314]) -> [PASS][125] +7 similar issues
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
    - {shard-rkl}:        ([SKIP][126], [SKIP][127]) ([i915#1849] / [i915#4098]) -> [PASS][128]
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render:
    - {shard-rkl}:        [SKIP][129] ([i915#1849]) -> [PASS][130] +16 similar issues
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html

  * igt@kms_invalid_mode@bad-hsync-end:
    - {shard-rkl}:        [SKIP][131] ([i915#4278]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@kms_invalid_mode@bad-hsync-end.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_invalid_mode@bad-hsync-end.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
    - {shard-rkl}:        [SKIP][133] ([i915#1849] / [i915#4070]) -> [PASS][134] +2 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-2/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:
    - shard-skl:          [FAIL][135] ([fdo#108145] / [i915#265]) -> [PASS][136]
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-skl7/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
    - {shard-rkl}:        [SKIP][137] ([i915#3558] / [i915#4070]) -> [PASS][138]
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-1/igt@kms_plane_multiple@atomic-pipe-a-tiling-x.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/shard-rkl-6/igt@kms_plane_multiple@atomic-pipe-a-tiling-x.html

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
    - {shard-rkl}:        ([SKIP][139], [PASS][140]) ([i915#3558]) -> [PASS][141]
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-4/igt@kms_plane_multiple@atomic-pipe-b-tiling-x.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10973/shard-rkl-6/igt@kms_plane_multiple@

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21785/index.html

[-- Attachment #2: Type: text/html, Size: 33402 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file
  2021-12-08 16:39     ` Jani Nikula
@ 2021-12-09  9:50       ` Jani Nikula
  2021-12-09 17:28       ` Lucas De Marchi
  1 sibling, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2021-12-09  9:50 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-gfx

On Wed, 08 Dec 2021, Jani Nikula <jani.nikula@intel.com> wrote:
> On Wed, 08 Dec 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
>> On Wed, Dec 08, 2021 at 01:05:17PM +0200, Jani Nikula wrote:
>>>Add display/intel_display_trace.[ch] for defining display
>>>tracepoints. The main goal is to reduce cross-includes between gem and
>>>display. It would be possible split up tracing even further, but that
>>>would lead to more boilerplate.
>>>
>>>We end up having to include intel_crtc.h in a few places because it was
>>>pulled in implicitly via intel_de.h -> i915_trace.h -> intel_crtc.h, and
>>>that's no longer the case.
>>>
>>>There should be no changes to tracepoints.
>>>
>>>v3:
>>>- Rebase
>>>
>>>v2:
>>>- Define TRACE_INCLUDE_PATH relative to define_trace.h (Chris)
>>>- Remove useless comments (Ville)
>>>
>>>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>>Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>>
>> only thing I noticed in the code move is that we lost the comments about
>> grouping the tracepoints. Was this intentional? Example:
>
> Yeah, specifically requested by Ville (see v2 changelog above).

And pushed, thanks for the reviews.

BR,
Jani.


>
> BR,
> Jani.
>
>
>>
>> 	/* watermark/fifo updates */
>> 	...
>> 	/* plane updates */
>> 	...
>> 	etc
>>
>>
>> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
>>
>> Lucas De Marchi
>>
>>
>>
>>
>>>---
>>> drivers/gpu/drm/i915/Makefile                 |   1 +
>>> drivers/gpu/drm/i915/display/g4x_dp.c         |   1 +
>>> drivers/gpu/drm/i915/display/g4x_hdmi.c       |   1 +
>>> .../gpu/drm/i915/display/intel_atomic_plane.c |   5 +-
>>> drivers/gpu/drm/i915/display/intel_audio.c    |   1 +
>>> drivers/gpu/drm/i915/display/intel_cdclk.c    |   1 +
>>> drivers/gpu/drm/i915/display/intel_crtc.c     |   4 +-
>>> .../drm/i915/display/intel_display_trace.c    |   9 +
>>> .../drm/i915/display/intel_display_trace.h    | 587 ++++++++++++++++++
>>> drivers/gpu/drm/i915/display/intel_dp.c       |   1 +
>>> drivers/gpu/drm/i915/display/intel_fbc.c      |   2 +-
>>> drivers/gpu/drm/i915/display/intel_fdi.c      |   1 +
>>> .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
>>> .../gpu/drm/i915/display/intel_frontbuffer.c  |   7 +-
>>> drivers/gpu/drm/i915/display/intel_sprite.c   |   4 +-
>>> drivers/gpu/drm/i915/display/intel_tv.c       |   1 +
>>> drivers/gpu/drm/i915/display/intel_vdsc.c     |   4 +-
>>> drivers/gpu/drm/i915/i915_debugfs.c           |   1 -
>>> drivers/gpu/drm/i915/i915_driver.c            |   1 -
>>> drivers/gpu/drm/i915/i915_irq.c               |   2 +-
>>> drivers/gpu/drm/i915/i915_trace.h             | 573 -----------------
>>> drivers/gpu/drm/i915/intel_pm.c               |   2 +-
>>> 22 files changed, 621 insertions(+), 590 deletions(-)
>>> create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.c
>>> create mode 100644 drivers/gpu/drm/i915/display/intel_display_trace.h
>>>
>>>diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
>>>index 3b5857da4123..6ddd2d2bbaaf 100644
>>>--- a/drivers/gpu/drm/i915/Makefile
>>>+++ b/drivers/gpu/drm/i915/Makefile
>>>@@ -259,6 +259,7 @@ i915-y += \
>>> 	display/intel_crt.o \
>>> 	display/intel_ddi.o \
>>> 	display/intel_ddi_buf_trans.o \
>>>+	display/intel_display_trace.o \
>>> 	display/intel_dp.o \
>>> 	display/intel_dp_aux.o \
>>> 	display/intel_dp_aux_backlight.o \
>>>diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
>>>index dc41868d01ef..f37677df6ebf 100644
>>>--- a/drivers/gpu/drm/i915/display/g4x_dp.c
>>>+++ b/drivers/gpu/drm/i915/display/g4x_dp.c
>>>@@ -9,6 +9,7 @@
>>> #include "intel_audio.h"
>>> #include "intel_backlight.h"
>>> #include "intel_connector.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_dp.h"
>>>diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
>>>index f5b4dd5b4275..06e00b1eaa7c 100644
>>>--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
>>>+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
>>>@@ -8,6 +8,7 @@
>>> #include "g4x_hdmi.h"
>>> #include "intel_audio.h"
>>> #include "intel_connector.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_dpio_phy.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>>>index 27b8f99dd099..89005628cc3a 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
>>>@@ -35,15 +35,16 @@
>>> #include <drm/drm_fourcc.h>
>>> #include <drm/drm_plane_helper.h>
>>>
>>>-#include "i915_trace.h"
>>>+#include "gt/intel_rps.h"
>>>+
>>> #include "intel_atomic_plane.h"
>>> #include "intel_cdclk.h"
>>>+#include "intel_display_trace.h"
>>> #include "intel_display_types.h"
>>> #include "intel_fb.h"
>>> #include "intel_fb_pin.h"
>>> #include "intel_pm.h"
>>> #include "intel_sprite.h"
>>>-#include "gt/intel_rps.h"
>>>
>>> static void intel_plane_state_reset(struct intel_plane_state *plane_state,
>>> 				    struct intel_plane *plane)
>>>diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
>>>index 03c3111ebdf0..991170c803e1 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_audio.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_audio.c
>>>@@ -31,6 +31,7 @@
>>> #include "intel_atomic.h"
>>> #include "intel_audio.h"
>>> #include "intel_cdclk.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_lpe_audio.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
>>>index a5569f21811c..639a64733f61 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
>>>@@ -27,6 +27,7 @@
>>> #include "intel_audio.h"
>>> #include "intel_bw.h"
>>> #include "intel_cdclk.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_pcode.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
>>>index 43554b591904..6930fbedc97d 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_crtc.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
>>>@@ -12,8 +12,8 @@
>>> #include <drm/drm_plane_helper.h>
>>> #include <drm/drm_vblank_work.h>
>>>
>>>-#include "i915_trace.h"
>>> #include "i915_vgpu.h"
>>>+#include "i9xx_plane.h"
>>> #include "icl_dsi.h"
>>> #include "intel_atomic.h"
>>> #include "intel_atomic_plane.h"
>>>@@ -21,13 +21,13 @@
>>> #include "intel_crtc.h"
>>> #include "intel_cursor.h"
>>> #include "intel_display_debugfs.h"
>>>+#include "intel_display_trace.h"
>>> #include "intel_display_types.h"
>>> #include "intel_dsi.h"
>>> #include "intel_pipe_crc.h"
>>> #include "intel_psr.h"
>>> #include "intel_sprite.h"
>>> #include "intel_vrr.h"
>>>-#include "i9xx_plane.h"
>>> #include "skl_universal_plane.h"
>>>
>>> static void assert_vblank_disabled(struct drm_crtc *crtc)
>>>diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.c b/drivers/gpu/drm/i915/display/intel_display_trace.c
>>>new file mode 100644
>>>index 000000000000..737979ada869
>>>--- /dev/null
>>>+++ b/drivers/gpu/drm/i915/display/intel_display_trace.c
>>>@@ -0,0 +1,9 @@
>>>+// SPDX-License-Identifier: GPL-2.0
>>>+/*
>>>+ * Copyright © 2021 Intel Corporation
>>>+ */
>>>+
>>>+#ifndef __CHECKER__
>>>+#define CREATE_TRACE_POINTS
>>>+#include "intel_display_trace.h"
>>>+#endif
>>>diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.h b/drivers/gpu/drm/i915/display/intel_display_trace.h
>>>new file mode 100644
>>>index 000000000000..4043e1276383
>>>--- /dev/null
>>>+++ b/drivers/gpu/drm/i915/display/intel_display_trace.h
>>>@@ -0,0 +1,587 @@
>>>+/* SPDX-License-Identifier: GPL-2.0 */
>>>+/*
>>>+ * Copyright © 2021 Intel Corporation
>>>+ */
>>>+
>>>+#undef TRACE_SYSTEM
>>>+#define TRACE_SYSTEM i915
>>>+
>>>+#if !defined(__INTEL_DISPLAY_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
>>>+#define __INTEL_DISPLAY_TRACE_H__
>>>+
>>>+#include <linux/types.h>
>>>+#include <linux/tracepoint.h>
>>>+
>>>+#include "i915_drv.h"
>>>+#include "intel_crtc.h"
>>>+#include "intel_display_types.h"
>>>+
>>>+TRACE_EVENT(intel_pipe_enable,
>>>+	    TP_PROTO(struct intel_crtc *crtc),
>>>+	    TP_ARGS(crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __array(u32, frame, 3)
>>>+			     __array(u32, scanline, 3)
>>>+			     __field(enum pipe, pipe)
>>>+			     ),
>>>+	    TP_fast_assign(
>>>+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>>+			   struct intel_crtc *it__;
>>>+			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>>+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>>+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>>+			   }
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe),
>>>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>>+);
>>>+
>>>+TRACE_EVENT(intel_pipe_disable,
>>>+	    TP_PROTO(struct intel_crtc *crtc),
>>>+	    TP_ARGS(crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __array(u32, frame, 3)
>>>+			     __array(u32, scanline, 3)
>>>+			     __field(enum pipe, pipe)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>>+			   struct intel_crtc *it__;
>>>+			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>>+				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>>+				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>>+			   }
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe),
>>>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>>+);
>>>+
>>>+TRACE_EVENT(intel_pipe_crc,
>>>+	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
>>>+	    TP_ARGS(crtc, crcs),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __array(u32, crcs, 5)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
>>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>>+		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
>>>+		      __entry->crcs[3], __entry->crcs[4])
>>>+);
>>>+
>>>+TRACE_EVENT(intel_cpu_fifo_underrun,
>>>+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>>>+	    TP_ARGS(dev_priv, pipe),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>>+			   __entry->pipe = pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe),
>>>+		      __entry->frame, __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_pch_fifo_underrun,
>>>+	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
>>>+	    TP_ARGS(dev_priv, pch_transcoder),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   enum pipe pipe = pch_transcoder;
>>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>>+			   __entry->pipe = pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe),
>>>+		      __entry->frame, __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_memory_cxsr,
>>>+	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
>>>+	    TP_ARGS(dev_priv, old, new),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __array(u32, frame, 3)
>>>+			     __array(u32, scanline, 3)
>>>+			     __field(bool, old)
>>>+			     __field(bool, new)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   struct intel_crtc *crtc;
>>>+			   for_each_intel_crtc(&dev_priv->drm, crtc) {
>>>+				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
>>>+				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
>>>+			   }
>>>+			   __entry->old = old;
>>>+			   __entry->new = new;
>>>+			   ),
>>>+
>>>+	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>>+		      onoff(__entry->old), onoff(__entry->new),
>>>+		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>>+		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>>+		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>>+);
>>>+
>>>+TRACE_EVENT(g4x_wm,
>>>+	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
>>>+	    TP_ARGS(crtc, wm),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __field(u16, primary)
>>>+			     __field(u16, sprite)
>>>+			     __field(u16, cursor)
>>>+			     __field(u16, sr_plane)
>>>+			     __field(u16, sr_cursor)
>>>+			     __field(u16, sr_fbc)
>>>+			     __field(u16, hpll_plane)
>>>+			     __field(u16, hpll_cursor)
>>>+			     __field(u16, hpll_fbc)
>>>+			     __field(bool, cxsr)
>>>+			     __field(bool, hpll)
>>>+			     __field(bool, fbc)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>>+			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>>+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>>+			   __entry->sr_plane = wm->sr.plane;
>>>+			   __entry->sr_cursor = wm->sr.cursor;
>>>+			   __entry->sr_fbc = wm->sr.fbc;
>>>+			   __entry->hpll_plane = wm->hpll.plane;
>>>+			   __entry->hpll_cursor = wm->hpll.cursor;
>>>+			   __entry->hpll_fbc = wm->hpll.fbc;
>>>+			   __entry->cxsr = wm->cxsr;
>>>+			   __entry->hpll = wm->hpll_en;
>>>+			   __entry->fbc = wm->fbc_en;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
>>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>>+		      __entry->primary, __entry->sprite, __entry->cursor,
>>>+		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
>>>+		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
>>>+		      yesno(__entry->fbc))
>>>+);
>>>+
>>>+TRACE_EVENT(vlv_wm,
>>>+	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
>>>+	    TP_ARGS(crtc, wm),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __field(u32, level)
>>>+			     __field(u32, cxsr)
>>>+			     __field(u32, primary)
>>>+			     __field(u32, sprite0)
>>>+			     __field(u32, sprite1)
>>>+			     __field(u32, cursor)
>>>+			     __field(u32, sr_plane)
>>>+			     __field(u32, sr_cursor)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   __entry->level = wm->level;
>>>+			   __entry->cxsr = wm->cxsr;
>>>+			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>>+			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>>+			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
>>>+			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>>+			   __entry->sr_plane = wm->sr.plane;
>>>+			   __entry->sr_cursor = wm->sr.cursor;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		      __entry->scanline, __entry->level, __entry->cxsr,
>>>+		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
>>>+		      __entry->sr_plane, __entry->sr_cursor)
>>>+);
>>>+
>>>+TRACE_EVENT(vlv_fifo_size,
>>>+	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
>>>+	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __field(u32, sprite0_start)
>>>+			     __field(u32, sprite1_start)
>>>+			     __field(u32, fifo_size)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   __entry->sprite0_start = sprite0_start;
>>>+			   __entry->sprite1_start = sprite1_start;
>>>+			   __entry->fifo_size = fifo_size;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		      __entry->scanline, __entry->sprite0_start,
>>>+		      __entry->sprite1_start, __entry->fifo_size)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_plane_update_noarm,
>>>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>>+	    TP_ARGS(plane, crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __array(int, src, 4)
>>>+			     __array(int, dst, 4)
>>>+			     __string(name, plane->name)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __assign_str(name, plane->name);
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>>+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>>+		      pipe_name(__entry->pipe), __get_str(name),
>>>+		      __entry->frame, __entry->scanline,
>>>+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>>+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>>+);
>>>+
>>>+TRACE_EVENT(intel_plane_update_arm,
>>>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>>+	    TP_ARGS(plane, crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __array(int, src, 4)
>>>+			     __array(int, dst, 4)
>>>+			     __string(name, plane->name)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __assign_str(name, plane->name);
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>>+			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>>+		      pipe_name(__entry->pipe), __get_str(name),
>>>+		      __entry->frame, __entry->scanline,
>>>+		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>>+		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>>+);
>>>+
>>>+TRACE_EVENT(intel_plane_disable_arm,
>>>+	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>>+	    TP_ARGS(plane, crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __string(name, plane->name)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __assign_str(name, plane->name);
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __get_str(name),
>>>+		      __entry->frame, __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_fbc_activate,
>>>+	    TP_PROTO(struct intel_plane *plane),
>>>+	    TP_ARGS(plane),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>>+									 plane->pipe);
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_fbc_deactivate,
>>>+	    TP_PROTO(struct intel_plane *plane),
>>>+	    TP_ARGS(plane),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>>+									 plane->pipe);
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_fbc_nuke,
>>>+	    TP_PROTO(struct intel_plane *plane),
>>>+	    TP_ARGS(plane),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>>+									 plane->pipe);
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_crtc_vblank_work_start,
>>>+	    TP_PROTO(struct intel_crtc *crtc),
>>>+	    TP_ARGS(crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		       __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_crtc_vblank_work_end,
>>>+	    TP_PROTO(struct intel_crtc *crtc),
>>>+	    TP_ARGS(crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		       __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_pipe_update_start,
>>>+	    TP_PROTO(struct intel_crtc *crtc),
>>>+	    TP_ARGS(crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __field(u32, min)
>>>+			     __field(u32, max)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>+			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>+			   __entry->min = crtc->debug.min_vbl;
>>>+			   __entry->max = crtc->debug.max_vbl;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		       __entry->scanline, __entry->min, __entry->max)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_pipe_update_vblank_evaded,
>>>+	    TP_PROTO(struct intel_crtc *crtc),
>>>+	    TP_ARGS(crtc),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     __field(u32, min)
>>>+			     __field(u32, max)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = crtc->debug.start_vbl_count;
>>>+			   __entry->scanline = crtc->debug.scanline_start;
>>>+			   __entry->min = crtc->debug.min_vbl;
>>>+			   __entry->max = crtc->debug.max_vbl;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		       __entry->scanline, __entry->min, __entry->max)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_pipe_update_end,
>>>+	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
>>>+	    TP_ARGS(crtc, frame, scanline_end),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(enum pipe, pipe)
>>>+			     __field(u32, frame)
>>>+			     __field(u32, scanline)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->pipe = crtc->pipe;
>>>+			   __entry->frame = frame;
>>>+			   __entry->scanline = scanline_end;
>>>+			   ),
>>>+
>>>+	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>+		      pipe_name(__entry->pipe), __entry->frame,
>>>+		      __entry->scanline)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_frontbuffer_invalidate,
>>>+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>>+	    TP_ARGS(frontbuffer_bits, origin),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(unsigned int, frontbuffer_bits)
>>>+			     __field(unsigned int, origin)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->frontbuffer_bits = frontbuffer_bits;
>>>+			   __entry->origin = origin;
>>>+			   ),
>>>+
>>>+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>>+		      __entry->frontbuffer_bits, __entry->origin)
>>>+);
>>>+
>>>+TRACE_EVENT(intel_frontbuffer_flush,
>>>+	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>>+	    TP_ARGS(frontbuffer_bits, origin),
>>>+
>>>+	    TP_STRUCT__entry(
>>>+			     __field(unsigned int, frontbuffer_bits)
>>>+			     __field(unsigned int, origin)
>>>+			     ),
>>>+
>>>+	    TP_fast_assign(
>>>+			   __entry->frontbuffer_bits = frontbuffer_bits;
>>>+			   __entry->origin = origin;
>>>+			   ),
>>>+
>>>+	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>>+		      __entry->frontbuffer_bits, __entry->origin)
>>>+);
>>>+
>>>+#endif /* __INTEL_DISPLAY_TRACE_H__ */
>>>+
>>>+/* This part must be outside protection */
>>>+#undef TRACE_INCLUDE_PATH
>>>+#undef TRACE_INCLUDE_FILE
>>>+#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/i915/display
>>>+#define TRACE_INCLUDE_FILE intel_display_trace
>>>+#include <trace/define_trace.h>
>>>diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>>>index a24831acb7da..b5e2508db1cf 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_dp.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_dp.c
>>>@@ -47,6 +47,7 @@
>>> #include "intel_audio.h"
>>> #include "intel_backlight.h"
>>> #include "intel_connector.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_ddi.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
>>>index 6efbef7a1fc0..8be01b93015f 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_fbc.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
>>>@@ -41,10 +41,10 @@
>>> #include <drm/drm_fourcc.h>
>>>
>>> #include "i915_drv.h"
>>>-#include "i915_trace.h"
>>> #include "i915_vgpu.h"
>>> #include "intel_cdclk.h"
>>> #include "intel_de.h"
>>>+#include "intel_display_trace.h"
>>> #include "intel_display_types.h"
>>> #include "intel_fbc.h"
>>> #include "intel_frontbuffer.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c
>>>index be77be626420..3d6e22923601 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_fdi.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_fdi.c
>>>@@ -4,6 +4,7 @@
>>>  */
>>>
>>> #include "intel_atomic.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_ddi.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>>>index 76045ce84739..d636d21fa9ce 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
>>>@@ -26,8 +26,8 @@
>>>  */
>>>
>>> #include "i915_drv.h"
>>>-#include "i915_trace.h"
>>> #include "intel_de.h"
>>>+#include "intel_display_trace.h"
>>> #include "intel_display_types.h"
>>> #include "intel_fbc.h"
>>> #include "intel_fifo_underrun.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>>>index 0492446cd04a..791248f812aa 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c
>>>@@ -55,14 +55,13 @@
>>>  * cancelled as soon as busyness is detected.
>>>  */
>>>
>>>-#include "display/intel_dp.h"
>>>-
>>> #include "i915_drv.h"
>>>-#include "i915_trace.h"
>>>+#include "intel_display_trace.h"
>>> #include "intel_display_types.h"
>>>+#include "intel_dp.h"
>>>+#include "intel_drrs.h"
>>> #include "intel_fbc.h"
>>> #include "intel_frontbuffer.h"
>>>-#include "intel_drrs.h"
>>> #include "intel_psr.h"
>>>
>>> /**
>>>diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
>>>index 926f5cdc65fd..2357a1301f48 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_sprite.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
>>>@@ -40,15 +40,15 @@
>>> #include <drm/drm_rect.h>
>>>
>>> #include "i915_drv.h"
>>>-#include "i915_trace.h"
>>> #include "i915_vgpu.h"
>>>+#include "i9xx_plane.h"
>>> #include "intel_atomic_plane.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_fb.h"
>>> #include "intel_frontbuffer.h"
>>> #include "intel_sprite.h"
>>>-#include "i9xx_plane.h"
>>> #include "intel_vrr.h"
>>>
>>> int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
>>>diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
>>>index fc77947dc3d5..8a39989b87ad 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_tv.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_tv.c
>>>@@ -36,6 +36,7 @@
>>>
>>> #include "i915_drv.h"
>>> #include "intel_connector.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_hotplug.h"
>>>diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
>>>index c6851b0e0bed..1cc4170e6ec8 100644
>>>--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
>>>+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
>>>@@ -6,12 +6,14 @@
>>>  *         Manasi Navare <manasi.d.navare@intel.com>
>>>  */
>>> #include <linux/limits.h>
>>>+
>>> #include "i915_drv.h"
>>>+#include "intel_crtc.h"
>>> #include "intel_de.h"
>>> #include "intel_display_types.h"
>>> #include "intel_dsi.h"
>>>-#include "intel_vdsc.h"
>>> #include "intel_qp_tables.h"
>>>+#include "intel_vdsc.h"
>>>
>>> enum ROW_INDEX_BPP {
>>> 	ROW_INDEX_6BPP = 0,
>>>diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>>>index 390d541f64ea..bafb902269de 100644
>>>--- a/drivers/gpu/drm/i915/i915_debugfs.c
>>>+++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>>@@ -48,7 +48,6 @@
>>> #include "i915_debugfs_params.h"
>>> #include "i915_irq.h"
>>> #include "i915_scheduler.h"
>>>-#include "i915_trace.h"
>>> #include "intel_pm.h"
>>>
>>> static inline struct drm_i915_private *node_to_i915(struct drm_info_node *node)
>>>diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
>>>index bbc99fc5888f..e9125f14b3d1 100644
>>>--- a/drivers/gpu/drm/i915/i915_driver.c
>>>+++ b/drivers/gpu/drm/i915/i915_driver.c
>>>@@ -82,7 +82,6 @@
>>> #include "i915_suspend.h"
>>> #include "i915_switcheroo.h"
>>> #include "i915_sysfs.h"
>>>-#include "i915_trace.h"
>>> #include "i915_vgpu.h"
>>> #include "intel_dram.h"
>>> #include "intel_gvt.h"
>>>diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>>>index d0be94456bd8..5b98fb0532b5 100644
>>>--- a/drivers/gpu/drm/i915/i915_irq.c
>>>+++ b/drivers/gpu/drm/i915/i915_irq.c
>>>@@ -35,6 +35,7 @@
>>> #include <drm/drm_drv.h>
>>>
>>> #include "display/intel_de.h"
>>>+#include "display/intel_display_trace.h"
>>> #include "display/intel_display_types.h"
>>> #include "display/intel_fifo_underrun.h"
>>> #include "display/intel_hotplug.h"
>>>@@ -49,7 +50,6 @@
>>>
>>> #include "i915_drv.h"
>>> #include "i915_irq.h"
>>>-#include "i915_trace.h"
>>> #include "intel_pm.h"
>>>
>>> /**
>>>diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
>>>index a07bed5333cc..37b5c9e9d260 100644
>>>--- a/drivers/gpu/drm/i915/i915_trace.h
>>>+++ b/drivers/gpu/drm/i915/i915_trace.h
>>>@@ -12,584 +12,11 @@
>>>
>>> #include <drm/drm_drv.h>
>>>
>>>-#include "display/intel_crtc.h"
>>>-#include "display/intel_display_types.h"
>>> #include "gt/intel_engine.h"
>>>
>>> #include "i915_drv.h"
>>> #include "i915_irq.h"
>>>
>>>-/* watermark/fifo updates */
>>>-
>>>-TRACE_EVENT(intel_pipe_enable,
>>>-	    TP_PROTO(struct intel_crtc *crtc),
>>>-	    TP_ARGS(crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __array(u32, frame, 3)
>>>-			     __array(u32, scanline, 3)
>>>-			     __field(enum pipe, pipe)
>>>-			     ),
>>>-	    TP_fast_assign(
>>>-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>>-			   struct intel_crtc *it__;
>>>-			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>>-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>>-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>>-			   }
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe),
>>>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>>-);
>>>-
>>>-TRACE_EVENT(intel_pipe_disable,
>>>-	    TP_PROTO(struct intel_crtc *crtc),
>>>-	    TP_ARGS(crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __array(u32, frame, 3)
>>>-			     __array(u32, scanline, 3)
>>>-			     __field(enum pipe, pipe)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>>-			   struct intel_crtc *it__;
>>>-			   for_each_intel_crtc(&dev_priv->drm, it__) {
>>>-				   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
>>>-				   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
>>>-			   }
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe),
>>>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>>-);
>>>-
>>>-TRACE_EVENT(intel_pipe_crc,
>>>-	    TP_PROTO(struct intel_crtc *crtc, const u32 *crcs),
>>>-	    TP_ARGS(crtc, crcs),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __array(u32, crcs, 5)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
>>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>>-		      __entry->crcs[0], __entry->crcs[1], __entry->crcs[2],
>>>-		      __entry->crcs[3], __entry->crcs[4])
>>>-);
>>>-
>>>-TRACE_EVENT(intel_cpu_fifo_underrun,
>>>-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pipe),
>>>-	    TP_ARGS(dev_priv, pipe),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			    struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>>-			   __entry->pipe = pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe),
>>>-		      __entry->frame, __entry->scanline)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_pch_fifo_underrun,
>>>-	    TP_PROTO(struct drm_i915_private *dev_priv, enum pipe pch_transcoder),
>>>-	    TP_ARGS(dev_priv, pch_transcoder),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   enum pipe pipe = pch_transcoder;
>>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
>>>-			   __entry->pipe = pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pch transcoder %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe),
>>>-		      __entry->frame, __entry->scanline)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_memory_cxsr,
>>>-	    TP_PROTO(struct drm_i915_private *dev_priv, bool old, bool new),
>>>-	    TP_ARGS(dev_priv, old, new),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __array(u32, frame, 3)
>>>-			     __array(u32, scanline, 3)
>>>-			     __field(bool, old)
>>>-			     __field(bool, new)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   struct intel_crtc *crtc;
>>>-			   for_each_intel_crtc(&dev_priv->drm, crtc) {
>>>-				   __entry->frame[crtc->pipe] = intel_crtc_get_vblank_counter(crtc);
>>>-				   __entry->scanline[crtc->pipe] = intel_get_crtc_scanline(crtc);
>>>-			   }
>>>-			   __entry->old = old;
>>>-			   __entry->new = new;
>>>-			   ),
>>>-
>>>-	    TP_printk("%s->%s, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
>>>-		      onoff(__entry->old), onoff(__entry->new),
>>>-		      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
>>>-		      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
>>>-		      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
>>>-);
>>>-
>>>-TRACE_EVENT(g4x_wm,
>>>-	    TP_PROTO(struct intel_crtc *crtc, const struct g4x_wm_values *wm),
>>>-	    TP_ARGS(crtc, wm),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __field(u16, primary)
>>>-			     __field(u16, sprite)
>>>-			     __field(u16, cursor)
>>>-			     __field(u16, sr_plane)
>>>-			     __field(u16, sr_cursor)
>>>-			     __field(u16, sr_fbc)
>>>-			     __field(u16, hpll_plane)
>>>-			     __field(u16, hpll_cursor)
>>>-			     __field(u16, hpll_fbc)
>>>-			     __field(bool, cxsr)
>>>-			     __field(bool, hpll)
>>>-			     __field(bool, fbc)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>>-			   __entry->sprite = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>>-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>>-			   __entry->sr_plane = wm->sr.plane;
>>>-			   __entry->sr_cursor = wm->sr.cursor;
>>>-			   __entry->sr_fbc = wm->sr.fbc;
>>>-			   __entry->hpll_plane = wm->hpll.plane;
>>>-			   __entry->hpll_cursor = wm->hpll.cursor;
>>>-			   __entry->hpll_fbc = wm->hpll.fbc;
>>>-			   __entry->cxsr = wm->cxsr;
>>>-			   __entry->hpll = wm->hpll_en;
>>>-			   __entry->fbc = wm->fbc_en;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
>>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline,
>>>-		      __entry->primary, __entry->sprite, __entry->cursor,
>>>-		      yesno(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
>>>-		      yesno(__entry->hpll), __entry->hpll_plane, __entry->hpll_cursor, __entry->hpll_fbc,
>>>-		      yesno(__entry->fbc))
>>>-);
>>>-
>>>-TRACE_EVENT(vlv_wm,
>>>-	    TP_PROTO(struct intel_crtc *crtc, const struct vlv_wm_values *wm),
>>>-	    TP_ARGS(crtc, wm),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __field(u32, level)
>>>-			     __field(u32, cxsr)
>>>-			     __field(u32, primary)
>>>-			     __field(u32, sprite0)
>>>-			     __field(u32, sprite1)
>>>-			     __field(u32, cursor)
>>>-			     __field(u32, sr_plane)
>>>-			     __field(u32, sr_cursor)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   __entry->level = wm->level;
>>>-			   __entry->cxsr = wm->cxsr;
>>>-			   __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
>>>-			   __entry->sprite0 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE0];
>>>-			   __entry->sprite1 = wm->pipe[crtc->pipe].plane[PLANE_SPRITE1];
>>>-			   __entry->cursor = wm->pipe[crtc->pipe].plane[PLANE_CURSOR];
>>>-			   __entry->sr_plane = wm->sr.plane;
>>>-			   __entry->sr_cursor = wm->sr.cursor;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		      __entry->scanline, __entry->level, __entry->cxsr,
>>>-		      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
>>>-		      __entry->sr_plane, __entry->sr_cursor)
>>>-);
>>>-
>>>-TRACE_EVENT(vlv_fifo_size,
>>>-	    TP_PROTO(struct intel_crtc *crtc, u32 sprite0_start, u32 sprite1_start, u32 fifo_size),
>>>-	    TP_ARGS(crtc, sprite0_start, sprite1_start, fifo_size),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __field(u32, sprite0_start)
>>>-			     __field(u32, sprite1_start)
>>>-			     __field(u32, fifo_size)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   __entry->sprite0_start = sprite0_start;
>>>-			   __entry->sprite1_start = sprite1_start;
>>>-			   __entry->fifo_size = fifo_size;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, %d/%d/%d",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		      __entry->scanline, __entry->sprite0_start,
>>>-		      __entry->sprite1_start, __entry->fifo_size)
>>>-);
>>>-
>>>-/* plane updates */
>>>-
>>>-TRACE_EVENT(intel_plane_update_noarm,
>>>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>>-	    TP_ARGS(plane, crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __array(int, src, 4)
>>>-			     __array(int, dst, 4)
>>>-			     __string(name, plane->name)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __assign_str(name, plane->name);
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>>-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>>-		      pipe_name(__entry->pipe), __get_str(name),
>>>-		      __entry->frame, __entry->scanline,
>>>-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>>-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>>-);
>>>-
>>>-TRACE_EVENT(intel_plane_update_arm,
>>>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>>-	    TP_ARGS(plane, crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __array(int, src, 4)
>>>-			     __array(int, dst, 4)
>>>-			     __string(name, plane->name)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __assign_str(name, plane->name);
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   memcpy(__entry->src, &plane->state->src, sizeof(__entry->src));
>>>-			   memcpy(__entry->dst, &plane->state->dst, sizeof(__entry->dst));
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
>>>-		      pipe_name(__entry->pipe), __get_str(name),
>>>-		      __entry->frame, __entry->scanline,
>>>-		      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
>>>-		      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
>>>-);
>>>-
>>>-TRACE_EVENT(intel_plane_disable_arm,
>>>-	    TP_PROTO(struct drm_plane *plane, struct intel_crtc *crtc),
>>>-	    TP_ARGS(plane, crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __string(name, plane->name)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __assign_str(name, plane->name);
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, plane %s, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __get_str(name),
>>>-		      __entry->frame, __entry->scanline)
>>>-);
>>>-
>>>-/* fbc */
>>>-
>>>-TRACE_EVENT(intel_fbc_activate,
>>>-	    TP_PROTO(struct intel_plane *plane),
>>>-	    TP_ARGS(plane),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>>-									 plane->pipe);
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_fbc_deactivate,
>>>-	    TP_PROTO(struct intel_plane *plane),
>>>-	    TP_ARGS(plane),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>>-									 plane->pipe);
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_fbc_nuke,
>>>-	    TP_PROTO(struct intel_plane *plane),
>>>-	    TP_ARGS(plane),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
>>>-									 plane->pipe);
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame, __entry->scanline)
>>>-);
>>>-
>>>-/* pipe updates */
>>>-
>>>-TRACE_EVENT(intel_crtc_vblank_work_start,
>>>-	    TP_PROTO(struct intel_crtc *crtc),
>>>-	    TP_ARGS(crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		       __entry->scanline)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_crtc_vblank_work_end,
>>>-	    TP_PROTO(struct intel_crtc *crtc),
>>>-	    TP_ARGS(crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		       __entry->scanline)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_pipe_update_start,
>>>-	    TP_PROTO(struct intel_crtc *crtc),
>>>-	    TP_ARGS(crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __field(u32, min)
>>>-			     __field(u32, max)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
>>>-			   __entry->scanline = intel_get_crtc_scanline(crtc);
>>>-			   __entry->min = crtc->debug.min_vbl;
>>>-			   __entry->max = crtc->debug.max_vbl;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		       __entry->scanline, __entry->min, __entry->max)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_pipe_update_vblank_evaded,
>>>-	    TP_PROTO(struct intel_crtc *crtc),
>>>-	    TP_ARGS(crtc),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     __field(u32, min)
>>>-			     __field(u32, max)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = crtc->debug.start_vbl_count;
>>>-			   __entry->scanline = crtc->debug.scanline_start;
>>>-			   __entry->min = crtc->debug.min_vbl;
>>>-			   __entry->max = crtc->debug.max_vbl;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		       __entry->scanline, __entry->min, __entry->max)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_pipe_update_end,
>>>-	    TP_PROTO(struct intel_crtc *crtc, u32 frame, int scanline_end),
>>>-	    TP_ARGS(crtc, frame, scanline_end),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(enum pipe, pipe)
>>>-			     __field(u32, frame)
>>>-			     __field(u32, scanline)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->pipe = crtc->pipe;
>>>-			   __entry->frame = frame;
>>>-			   __entry->scanline = scanline_end;
>>>-			   ),
>>>-
>>>-	    TP_printk("pipe %c, frame=%u, scanline=%u",
>>>-		      pipe_name(__entry->pipe), __entry->frame,
>>>-		      __entry->scanline)
>>>-);
>>>-
>>>-/* frontbuffer tracking */
>>>-
>>>-TRACE_EVENT(intel_frontbuffer_invalidate,
>>>-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>>-	    TP_ARGS(frontbuffer_bits, origin),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(unsigned int, frontbuffer_bits)
>>>-			     __field(unsigned int, origin)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->frontbuffer_bits = frontbuffer_bits;
>>>-			   __entry->origin = origin;
>>>-			   ),
>>>-
>>>-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>>-		      __entry->frontbuffer_bits, __entry->origin)
>>>-);
>>>-
>>>-TRACE_EVENT(intel_frontbuffer_flush,
>>>-	    TP_PROTO(unsigned int frontbuffer_bits, unsigned int origin),
>>>-	    TP_ARGS(frontbuffer_bits, origin),
>>>-
>>>-	    TP_STRUCT__entry(
>>>-			     __field(unsigned int, frontbuffer_bits)
>>>-			     __field(unsigned int, origin)
>>>-			     ),
>>>-
>>>-	    TP_fast_assign(
>>>-			   __entry->frontbuffer_bits = frontbuffer_bits;
>>>-			   __entry->origin = origin;
>>>-			   ),
>>>-
>>>-	    TP_printk("frontbuffer_bits=0x%08x, origin=%u",
>>>-		      __entry->frontbuffer_bits, __entry->origin)
>>>-);
>>>-
>>> /* object tracking */
>>>
>>> TRACE_EVENT(i915_gem_object_create,
>>>diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>>>index fe3787425780..abad48e1690e 100644
>>>--- a/drivers/gpu/drm/i915/intel_pm.c
>>>+++ b/drivers/gpu/drm/i915/intel_pm.c
>>>@@ -36,6 +36,7 @@
>>> #include "display/intel_atomic_plane.h"
>>> #include "display/intel_bw.h"
>>> #include "display/intel_de.h"
>>>+#include "display/intel_display_trace.h"
>>> #include "display/intel_display_types.h"
>>> #include "display/intel_fb.h"
>>> #include "display/intel_fbc.h"
>>>@@ -47,7 +48,6 @@
>>> #include "i915_drv.h"
>>> #include "i915_fixed.h"
>>> #include "i915_irq.h"
>>>-#include "i915_trace.h"
>>> #include "intel_pcode.h"
>>> #include "intel_pm.h"
>>> #include "vlv_sideband.h"
>>>-- 
>>>2.30.2
>>>

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file
  2021-12-08 16:39     ` Jani Nikula
  2021-12-09  9:50       ` Jani Nikula
@ 2021-12-09 17:28       ` Lucas De Marchi
  1 sibling, 0 replies; 11+ messages in thread
From: Lucas De Marchi @ 2021-12-09 17:28 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Wed, Dec 08, 2021 at 06:39:55PM +0200, Jani Nikula wrote:
>On Wed, 08 Dec 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
>> On Wed, Dec 08, 2021 at 01:05:17PM +0200, Jani Nikula wrote:
>>>Add display/intel_display_trace.[ch] for defining display
>>>tracepoints. The main goal is to reduce cross-includes between gem and
>>>display. It would be possible split up tracing even further, but that
>>>would lead to more boilerplate.
>>>
>>>We end up having to include intel_crtc.h in a few places because it was
>>>pulled in implicitly via intel_de.h -> i915_trace.h -> intel_crtc.h, and
>>>that's no longer the case.
>>>
>>>There should be no changes to tracepoints.
>>>
>>>v3:
>>>- Rebase
>>>
>>>v2:
>>>- Define TRACE_INCLUDE_PATH relative to define_trace.h (Chris)
>>>- Remove useless comments (Ville)
>>>
>>>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>>Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>>
>> only thing I noticed in the code move is that we lost the comments about
>> grouping the tracepoints. Was this intentional? Example:
>
>Yeah, specifically requested by Ville (see v2 changelog above).


ah, ok. Thanks.

Lucas De Marchi

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-12-09 17:28 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-08 11:05 [Intel-gfx] [PATCH v3 0/2] drm/i915: trace display split Jani Nikula
2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 1/2] drm/i915/trace: clean up boilerplate organization Jani Nikula
2021-12-08 11:05 ` [Intel-gfx] [PATCH v3 2/2] drm/i915/trace: split out display trace to a separate file Jani Nikula
2021-12-08 16:03   ` Lucas De Marchi
2021-12-08 16:39     ` Jani Nikula
2021-12-09  9:50       ` Jani Nikula
2021-12-09 17:28       ` Lucas De Marchi
2021-12-08 13:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: trace display split Patchwork
2021-12-08 13:49 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-12-08 14:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-12-08 18:18 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox