Commit 8cebc86c authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Pass the plane state explicitly to tracepoints



Using the plane->state pointer in the tracepoints is incorrect
as technically a different state could already have been swapped
in (though in reality that is currently prevented by the stall
hacks in the commit machinery). But let's not leave such footguns
lying around when we can just pass in the correct state by hand.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241218173650.19782-4-ville.syrjala@linux.intel.com


Reviewed-by: default avatarJuha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
parent 9548f4f4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -772,7 +772,7 @@ void intel_plane_update_noarm(struct intel_dsb *dsb,
{
	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);

	trace_intel_plane_update_noarm(plane, crtc);
	trace_intel_plane_update_noarm(plane_state, crtc);

	if (plane->update_noarm)
		plane->update_noarm(dsb, plane, crtc_state, plane_state);
@@ -802,7 +802,7 @@ void intel_plane_update_arm(struct intel_dsb *dsb,
		return;
	}

	trace_intel_plane_update_arm(plane, crtc);
	trace_intel_plane_update_arm(plane_state, crtc);
	plane->update_arm(dsb, plane, crtc_state, plane_state);
}

+13 −12
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include "intel_vblank.h"

#define __dev_name_display(display) dev_name((display)->drm->dev)
#define __dev_name_drm(obj) dev_name((obj)->dev->dev)
#define __dev_name_kms(obj) dev_name((obj)->base.dev->dev)

/*
@@ -403,17 +404,17 @@ TRACE_EVENT(intel_plane_async_flip,
);

TRACE_EVENT(intel_plane_update_noarm,
	    TP_PROTO(struct intel_plane *plane, struct intel_crtc *crtc),
	    TP_ARGS(plane, crtc),
	    TP_PROTO(const struct intel_plane_state *plane_state, struct intel_crtc *crtc),
	    TP_ARGS(plane_state, crtc),

	    TP_STRUCT__entry(
			     __string(dev, __dev_name_kms(plane))
			     __string(dev, __dev_name_drm(plane_state->uapi.plane))
			     __field(char, pipe_name)
			     __field(u32, frame)
			     __field(u32, scanline)
			     __array(int, src, 4)
			     __array(int, dst, 4)
			     __string(name, plane->base.name)
			     __string(name, plane_state->uapi.plane->name)
			     ),

	    TP_fast_assign(
@@ -422,8 +423,8 @@ TRACE_EVENT(intel_plane_update_noarm,
			   __entry->pipe_name = pipe_name(crtc->pipe);
			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
			   __entry->scanline = intel_get_crtc_scanline(crtc);
			   memcpy(__entry->src, &plane->base.state->src, sizeof(__entry->src));
			   memcpy(__entry->dst, &plane->base.state->dst, sizeof(__entry->dst));
			   memcpy(__entry->src, &plane_state->uapi.src, sizeof(__entry->src));
			   memcpy(__entry->dst, &plane_state->uapi.dst, sizeof(__entry->dst));
			   ),

	    TP_printk("dev %s, pipe %c, %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
@@ -434,17 +435,17 @@ TRACE_EVENT(intel_plane_update_noarm,
);

TRACE_EVENT(intel_plane_update_arm,
	    TP_PROTO(struct intel_plane *plane, struct intel_crtc *crtc),
	    TP_ARGS(plane, crtc),
	    TP_PROTO(const struct intel_plane_state *plane_state, struct intel_crtc *crtc),
	    TP_ARGS(plane_state, crtc),

	    TP_STRUCT__entry(
			     __string(dev, __dev_name_kms(plane))
			     __string(dev, __dev_name_drm(plane_state->uapi.plane))
			     __field(char, pipe_name)
			     __field(u32, frame)
			     __field(u32, scanline)
			     __array(int, src, 4)
			     __array(int, dst, 4)
			     __string(name, plane->base.name)
			     __string(name, plane_state->uapi.plane->name)
			     ),

	    TP_fast_assign(
@@ -453,8 +454,8 @@ TRACE_EVENT(intel_plane_update_arm,
			   __entry->pipe_name = pipe_name(crtc->pipe);
			   __entry->frame = intel_crtc_get_vblank_counter(crtc);
			   __entry->scanline = intel_get_crtc_scanline(crtc);
			   memcpy(__entry->src, &plane->base.state->src, sizeof(__entry->src));
			   memcpy(__entry->dst, &plane->base.state->dst, sizeof(__entry->dst));
			   memcpy(__entry->src, &plane_state->uapi.src, sizeof(__entry->src));
			   memcpy(__entry->dst, &plane_state->uapi.dst, sizeof(__entry->dst));
			   ),

	    TP_printk("dev %s, pipe %c, %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,