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