mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 21:33:52 +00:00
drm/i915: Move pipe enable/disable tracepoints to intel_crtc_vblank_{on,off}()
On platforms/outputs without a working frame counter we rely on the vblank code to cook up the frame counter from the timestamps. That requires that vblank support is enabled. Thus we need to move the pipe enable/disable tracepoints to the other side of the drm_vblank_{on,off}() calls. There shouldn't really be much happening between these old and new call sites so the tracepoints should still provide reasonable data. The alternative would be to give up on having the frame counter values in the trace which would render the tracepoints more or less pointless. v2: Missed one case in intel_ddi_post_disable() Drop the now useless i915_trace.h includes Reported-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Tested-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210304170421.10901-2-ville.syrjala@linux.intel.com Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
This commit is contained in:
parent
bc71194e88
commit
e43539f87a
3 changed files with 15 additions and 10 deletions
|
@ -84,12 +84,26 @@ void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
|
|||
drm_crtc_set_max_vblank_count(&crtc->base,
|
||||
intel_crtc_max_vblank_count(crtc_state));
|
||||
drm_crtc_vblank_on(&crtc->base);
|
||||
|
||||
/*
|
||||
* Should really happen exactly when we enable the pipe
|
||||
* but we want the frame counters in the trace, and that
|
||||
* requires vblank support on some platforms/outputs.
|
||||
*/
|
||||
trace_intel_pipe_enable(crtc);
|
||||
}
|
||||
|
||||
void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
|
||||
{
|
||||
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
|
||||
|
||||
/*
|
||||
* Should really happen exactly when we disable the pipe
|
||||
* but we want the frame counters in the trace, and that
|
||||
* requires vblank support on some platforms/outputs.
|
||||
*/
|
||||
trace_intel_pipe_disable(crtc);
|
||||
|
||||
drm_crtc_vblank_off(&crtc->base);
|
||||
assert_vblank_disabled(&crtc->base);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <drm/drm_scdc_helper.h>
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_trace.h"
|
||||
#include "intel_audio.h"
|
||||
#include "intel_combo_phy.h"
|
||||
#include "intel_connector.h"
|
||||
|
@ -2656,7 +2655,6 @@ static void intel_ddi_post_disable(struct intel_atomic_state *state,
|
|||
intel_atomic_get_old_crtc_state(state, slave);
|
||||
|
||||
intel_crtc_vblank_off(old_slave_crtc_state);
|
||||
trace_intel_pipe_disable(slave);
|
||||
|
||||
intel_dsc_disable(old_slave_crtc_state);
|
||||
skl_scaler_disable(old_slave_crtc_state);
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
#include "gt/intel_rps.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_trace.h"
|
||||
#include "intel_acpi.h"
|
||||
#include "intel_atomic.h"
|
||||
#include "intel_atomic_plane.h"
|
||||
|
@ -794,8 +793,6 @@ void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
|
|||
/* FIXME: assert CPU port conditions for SNB+ */
|
||||
}
|
||||
|
||||
trace_intel_pipe_enable(crtc);
|
||||
|
||||
reg = PIPECONF(cpu_transcoder);
|
||||
val = intel_de_read(dev_priv, reg);
|
||||
if (val & PIPECONF_ENABLE) {
|
||||
|
@ -835,8 +832,6 @@ void intel_disable_pipe(const struct intel_crtc_state *old_crtc_state)
|
|||
*/
|
||||
assert_planes_disabled(crtc);
|
||||
|
||||
trace_intel_pipe_disable(crtc);
|
||||
|
||||
reg = PIPECONF(cpu_transcoder);
|
||||
val = intel_de_read(dev_priv, reg);
|
||||
if ((val & PIPECONF_ENABLE) == 0)
|
||||
|
@ -4026,10 +4021,8 @@ static void hsw_crtc_enable(struct intel_atomic_state *state,
|
|||
if (INTEL_GEN(dev_priv) >= 11)
|
||||
icl_pipe_mbus_enable(crtc);
|
||||
|
||||
if (new_crtc_state->bigjoiner_slave) {
|
||||
trace_intel_pipe_enable(crtc);
|
||||
if (new_crtc_state->bigjoiner_slave)
|
||||
intel_crtc_vblank_on(new_crtc_state);
|
||||
}
|
||||
|
||||
intel_encoders_enable(state, crtc);
|
||||
|
||||
|
|
Loading…
Reference in a new issue