Message ID | 20190206204910.13965-4-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/4] drm/i915: Add pipe crc tracepoint | expand |
On Wed, Feb 06, 2019 at 10:49:10PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Wrap the .update_plane()/.update_slave()/.disable_plane() vfunc > calls into helpers which also take care to emit the appropriate > tracepoint. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > drivers/gpu/drm/i915/intel_atomic_plane.c | 49 +++++++++++++++++------ > drivers/gpu/drm/i915/intel_display.c | 19 ++++----- > drivers/gpu/drm/i915/intel_drv.h | 8 ++++ > 3 files changed, 51 insertions(+), 25 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c > index a1a263026574..f9fc06017a39 100644 > --- a/drivers/gpu/drm/i915/intel_atomic_plane.c > +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c > @@ -212,6 +212,35 @@ skl_next_plane_to_commit(struct intel_atomic_state *state, > return NULL; > } > > +void intel_update_plane(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state, > + const struct intel_plane_state *plane_state) > +{ > + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); > + > + trace_intel_update_plane(&plane->base, crtc); > + plane->update_plane(plane, crtc_state, plane_state); > +} > + > +void intel_update_slave(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state, > + const struct intel_plane_state *plane_state) > +{ > + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); > + > + trace_intel_update_plane(&plane->base, crtc); > + plane->update_slave(plane, crtc_state, plane_state); > +} > + > +void intel_disable_plane(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state) > +{ > + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); > + > + trace_intel_disable_plane(&plane->base, crtc); > + plane->disable_plane(plane, crtc_state); > +} > + > void skl_update_planes_on_crtc(struct intel_atomic_state *state, > struct intel_crtc *crtc) > { > @@ -236,8 +265,7 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state, > intel_atomic_get_new_plane_state(state, plane); > > if (new_plane_state->base.visible) { > - trace_intel_update_plane(&plane->base, crtc); > - plane->update_plane(plane, new_crtc_state, new_plane_state); > + intel_update_plane(plane, new_crtc_state, new_plane_state); > } else if (new_plane_state->slave) { > struct intel_plane *master = > new_plane_state->linked_plane; > @@ -254,11 +282,9 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state, > new_plane_state = > intel_atomic_get_new_plane_state(state, master); > > - trace_intel_update_plane(&plane->base, crtc); > - plane->update_slave(plane, new_crtc_state, new_plane_state); > + intel_update_slave(plane, new_crtc_state, new_plane_state); > } else { > - trace_intel_disable_plane(&plane->base, crtc); > - plane->disable_plane(plane, new_crtc_state); > + intel_disable_plane(plane, new_crtc_state); > } > } > } > @@ -278,13 +304,10 @@ void i9xx_update_planes_on_crtc(struct intel_atomic_state *state, > !(update_mask & BIT(plane->id))) > continue; > > - if (new_plane_state->base.visible) { > - trace_intel_update_plane(&plane->base, crtc); > - plane->update_plane(plane, new_crtc_state, new_plane_state); > - } else { > - trace_intel_disable_plane(&plane->base, crtc); > - plane->disable_plane(plane, new_crtc_state); > - } > + if (new_plane_state->base.visible) > + intel_update_plane(plane, new_crtc_state, new_plane_state); > + else > + intel_disable_plane(plane, new_crtc_state); > } > } > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index e404e9000893..de0e871da8db 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -2820,8 +2820,7 @@ static void intel_plane_disable_noatomic(struct intel_crtc *crtc, > if (plane->id == PLANE_PRIMARY) > intel_pre_disable_primary_noatomic(&crtc->base); > > - trace_intel_disable_plane(&plane->base, crtc); > - plane->disable_plane(plane, crtc_state); > + intel_disable_plane(plane, crtc_state); > } > > static void > @@ -5524,8 +5523,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state, > !(update_mask & BIT(plane->id))) > continue; > > - trace_intel_disable_plane(&plane->base, crtc); > - plane->disable_plane(plane, new_crtc_state); > + intel_disable_plane(plane, new_crtc_state); > > if (old_plane_state->base.visible) > fb_bits |= plane->frontbuffer_bit; > @@ -13937,14 +13935,11 @@ intel_legacy_cursor_update(struct drm_plane *plane, > */ > crtc_state->active_planes = new_crtc_state->active_planes; > > - if (plane->state->visible) { > - trace_intel_update_plane(plane, to_intel_crtc(crtc)); > - intel_plane->update_plane(intel_plane, crtc_state, > - to_intel_plane_state(plane->state)); > - } else { > - trace_intel_disable_plane(plane, to_intel_crtc(crtc)); > - intel_plane->disable_plane(intel_plane, crtc_state); > - } > + if (plane->state->visible) > + intel_update_plane(intel_plane, crtc_state, > + to_intel_plane_state(plane->state)); > + else > + intel_disable_plane(intel_plane, crtc_state); > > intel_plane_unpin_fb(to_intel_plane_state(old_plane_state)); > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 90ba5436370e..6093bc34720a 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -2361,6 +2361,14 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv, > struct intel_crtc_state *crtc_state); > > /* intel_atomic_plane.c */ > +void intel_update_plane(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state, > + const struct intel_plane_state *plane_state); > +void intel_update_slave(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state, > + const struct intel_plane_state *plane_state); > +void intel_disable_plane(struct intel_plane *plane, > + const struct intel_crtc_state *crtc_state); > struct intel_plane *intel_plane_alloc(void); > void intel_plane_free(struct intel_plane *plane); > struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane); > -- > 2.19.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c index a1a263026574..f9fc06017a39 100644 --- a/drivers/gpu/drm/i915/intel_atomic_plane.c +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c @@ -212,6 +212,35 @@ skl_next_plane_to_commit(struct intel_atomic_state *state, return NULL; } +void intel_update_plane(struct intel_plane *plane, + const struct intel_crtc_state *crtc_state, + const struct intel_plane_state *plane_state) +{ + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); + + trace_intel_update_plane(&plane->base, crtc); + plane->update_plane(plane, crtc_state, plane_state); +} + +void intel_update_slave(struct intel_plane *plane, + const struct intel_crtc_state *crtc_state, + const struct intel_plane_state *plane_state) +{ + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); + + trace_intel_update_plane(&plane->base, crtc); + plane->update_slave(plane, crtc_state, plane_state); +} + +void intel_disable_plane(struct intel_plane *plane, + const struct intel_crtc_state *crtc_state) +{ + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); + + trace_intel_disable_plane(&plane->base, crtc); + plane->disable_plane(plane, crtc_state); +} + void skl_update_planes_on_crtc(struct intel_atomic_state *state, struct intel_crtc *crtc) { @@ -236,8 +265,7 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state, intel_atomic_get_new_plane_state(state, plane); if (new_plane_state->base.visible) { - trace_intel_update_plane(&plane->base, crtc); - plane->update_plane(plane, new_crtc_state, new_plane_state); + intel_update_plane(plane, new_crtc_state, new_plane_state); } else if (new_plane_state->slave) { struct intel_plane *master = new_plane_state->linked_plane; @@ -254,11 +282,9 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state, new_plane_state = intel_atomic_get_new_plane_state(state, master); - trace_intel_update_plane(&plane->base, crtc); - plane->update_slave(plane, new_crtc_state, new_plane_state); + intel_update_slave(plane, new_crtc_state, new_plane_state); } else { - trace_intel_disable_plane(&plane->base, crtc); - plane->disable_plane(plane, new_crtc_state); + intel_disable_plane(plane, new_crtc_state); } } } @@ -278,13 +304,10 @@ void i9xx_update_planes_on_crtc(struct intel_atomic_state *state, !(update_mask & BIT(plane->id))) continue; - if (new_plane_state->base.visible) { - trace_intel_update_plane(&plane->base, crtc); - plane->update_plane(plane, new_crtc_state, new_plane_state); - } else { - trace_intel_disable_plane(&plane->base, crtc); - plane->disable_plane(plane, new_crtc_state); - } + if (new_plane_state->base.visible) + intel_update_plane(plane, new_crtc_state, new_plane_state); + else + intel_disable_plane(plane, new_crtc_state); } } diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index e404e9000893..de0e871da8db 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -2820,8 +2820,7 @@ static void intel_plane_disable_noatomic(struct intel_crtc *crtc, if (plane->id == PLANE_PRIMARY) intel_pre_disable_primary_noatomic(&crtc->base); - trace_intel_disable_plane(&plane->base, crtc); - plane->disable_plane(plane, crtc_state); + intel_disable_plane(plane, crtc_state); } static void @@ -5524,8 +5523,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state, !(update_mask & BIT(plane->id))) continue; - trace_intel_disable_plane(&plane->base, crtc); - plane->disable_plane(plane, new_crtc_state); + intel_disable_plane(plane, new_crtc_state); if (old_plane_state->base.visible) fb_bits |= plane->frontbuffer_bit; @@ -13937,14 +13935,11 @@ intel_legacy_cursor_update(struct drm_plane *plane, */ crtc_state->active_planes = new_crtc_state->active_planes; - if (plane->state->visible) { - trace_intel_update_plane(plane, to_intel_crtc(crtc)); - intel_plane->update_plane(intel_plane, crtc_state, - to_intel_plane_state(plane->state)); - } else { - trace_intel_disable_plane(plane, to_intel_crtc(crtc)); - intel_plane->disable_plane(intel_plane, crtc_state); - } + if (plane->state->visible) + intel_update_plane(intel_plane, crtc_state, + to_intel_plane_state(plane->state)); + else + intel_disable_plane(intel_plane, crtc_state); intel_plane_unpin_fb(to_intel_plane_state(old_plane_state)); diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 90ba5436370e..6093bc34720a 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -2361,6 +2361,14 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv, struct intel_crtc_state *crtc_state); /* intel_atomic_plane.c */ +void intel_update_plane(struct intel_plane *plane, + const struct intel_crtc_state *crtc_state, + const struct intel_plane_state *plane_state); +void intel_update_slave(struct intel_plane *plane, + const struct intel_crtc_state *crtc_state, + const struct intel_plane_state *plane_state); +void intel_disable_plane(struct intel_plane *plane, + const struct intel_crtc_state *crtc_state); struct intel_plane *intel_plane_alloc(void); void intel_plane_free(struct intel_plane *plane); struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane);