* [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