> -----Original Message----- > From: Intel-gfx <[email protected]> On Behalf Of Ville > Syrjala > Sent: Monday, June 9, 2025 7:40 PM > To: [email protected] > Cc: [email protected] > Subject: [PATCH v4 02/21] drm/i915/dsb: Provide intel_dsb_head() and > intel_dsb_size() > > From: Ville Syrjälä <[email protected]> > > The upcoming flip queue implementation will need to know the DSB buffer head > and size. Expose those outside intel_dsb.c.
Looks Good to me. Reviewed-by: Uma Shankar <[email protected]> > Signed-off-by: Ville Syrjälä <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_dsb.c | 9 +++++++-- > drivers/gpu/drm/i915/display/intel_dsb.h | 2 ++ > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c > b/drivers/gpu/drm/i915/display/intel_dsb.c > index abda04d969c7..8cbb5695c651 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsb.c > +++ b/drivers/gpu/drm/i915/display/intel_dsb.c > @@ -242,14 +242,19 @@ static bool is_dsb_busy(struct intel_display *display, > enum pipe pipe, > return intel_de_read_fw(display, DSB_CTRL(pipe, dsb_id)) & > DSB_STATUS_BUSY; } > > -static unsigned int intel_dsb_head(struct intel_dsb *dsb) > +unsigned int intel_dsb_size(struct intel_dsb *dsb) { > + return dsb->free_pos * 4; > +} > + > +unsigned int intel_dsb_head(struct intel_dsb *dsb) > { > return intel_dsb_buffer_ggtt_offset(&dsb->dsb_buf); > } > > static unsigned int intel_dsb_tail(struct intel_dsb *dsb) { > - return intel_dsb_buffer_ggtt_offset(&dsb->dsb_buf) + dsb->free_pos * 4; > + return intel_dsb_buffer_ggtt_offset(&dsb->dsb_buf) + > +intel_dsb_size(dsb); > } > > static void intel_dsb_ins_align(struct intel_dsb *dsb) diff --git > a/drivers/gpu/drm/i915/display/intel_dsb.h > b/drivers/gpu/drm/i915/display/intel_dsb.h > index 6900acd603b8..ab6489749866 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsb.h > +++ b/drivers/gpu/drm/i915/display/intel_dsb.h > @@ -26,6 +26,8 @@ enum intel_dsb_id { > I915_MAX_DSBS, > }; > > +unsigned int intel_dsb_size(struct intel_dsb *dsb); unsigned int > +intel_dsb_head(struct intel_dsb *dsb); > struct intel_dsb *intel_dsb_prepare(struct intel_atomic_state *state, > struct intel_crtc *crtc, > enum intel_dsb_id dsb_id, > -- > 2.49.0
