On Thu, 16 Oct 2025, Ville Syrjala <[email protected]> wrote: > From: Ville Syrjälä <[email protected]> > > Get rid of intel_frontbuffer_flip_{prepare,complete}() (and > the accompanying flip_bits) since they are unused. > > I suppose these could technically provide a minor optiimization
*optimization > over intel_frontbuffer_flip() in that the flush would get > deferred further if new rendering were to sneak in between the > prepare() and complete() calls. But for correctness it should > not make any difference since another flush will anyway follow > once the new rendering finishes. > > Acked-by: Jani Nikula <[email protected]> > Signed-off-by: Ville Syrjälä <[email protected]> > --- > .../gpu/drm/i915/display/intel_display_core.h | 4 +- > .../drm/i915/display/intel_display_debugfs.c | 3 -- > .../gpu/drm/i915/display/intel_frontbuffer.c | 46 ------------------- > .../gpu/drm/i915/display/intel_frontbuffer.h | 4 -- > 4 files changed, 1 insertion(+), 56 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h > b/drivers/gpu/drm/i915/display/intel_display_core.h > index df4da52cbdb3..fa43636b89fa 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_core.h > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h > @@ -144,11 +144,9 @@ struct intel_frontbuffer_tracking { > spinlock_t lock; > > /* > - * Tracking bits for delayed frontbuffer flushing du to gpu activity or > - * scheduled flips. > + * Tracking bits for delayed frontbuffer flushing due to gpu activity. > */ > unsigned busy_bits; > - unsigned flip_bits; > }; > > struct intel_hotplug { > diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c > b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > index 10dddec3796f..4e8397504774 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c > +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > @@ -76,9 +76,6 @@ static int i915_frontbuffer_tracking(struct seq_file *m, > void *unused) > seq_printf(m, "FB tracking busy bits: 0x%08x\n", > display->fb_tracking.busy_bits); > > - seq_printf(m, "FB tracking flip bits: 0x%08x\n", > - display->fb_tracking.flip_bits); > - > spin_unlock(&display->fb_tracking.lock); > > return 0; > diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.c > b/drivers/gpu/drm/i915/display/intel_frontbuffer.c > index 73ed28ac9573..53e93985c7d4 100644 > --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.c > +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.c > @@ -102,51 +102,6 @@ static void frontbuffer_flush(struct intel_display > *display, > intel_fbc_flush(display, frontbuffer_bits, origin); > } > > -/** > - * intel_frontbuffer_flip_prepare - prepare asynchronous frontbuffer flip > - * @display: display device > - * @frontbuffer_bits: frontbuffer plane tracking bits > - * > - * This function gets called after scheduling a flip on @obj. The actual > - * frontbuffer flushing will be delayed until completion is signalled with > - * intel_frontbuffer_flip_complete. If an invalidate happens in between this > - * flush will be cancelled. > - * > - * Can be called without any locks held. > - */ > -void intel_frontbuffer_flip_prepare(struct intel_display *display, > - unsigned frontbuffer_bits) > -{ > - spin_lock(&display->fb_tracking.lock); > - display->fb_tracking.flip_bits |= frontbuffer_bits; > - /* Remove stale busy bits due to the old buffer. */ > - display->fb_tracking.busy_bits &= ~frontbuffer_bits; > - spin_unlock(&display->fb_tracking.lock); > -} > - > -/** > - * intel_frontbuffer_flip_complete - complete asynchronous frontbuffer flip > - * @display: display device > - * @frontbuffer_bits: frontbuffer plane tracking bits > - * > - * This function gets called after the flip has been latched and will > complete > - * on the next vblank. It will execute the flush if it hasn't been cancelled > yet. > - * > - * Can be called without any locks held. > - */ > -void intel_frontbuffer_flip_complete(struct intel_display *display, > - unsigned frontbuffer_bits) > -{ > - spin_lock(&display->fb_tracking.lock); > - /* Mask any cancelled flips. */ > - frontbuffer_bits &= display->fb_tracking.flip_bits; > - display->fb_tracking.flip_bits &= ~frontbuffer_bits; > - spin_unlock(&display->fb_tracking.lock); > - > - if (frontbuffer_bits) > - frontbuffer_flush(display, frontbuffer_bits, ORIGIN_FLIP); > -} > - > /** > * intel_frontbuffer_flip - synchronous frontbuffer flip > * @display: display device > @@ -178,7 +133,6 @@ void __intel_fb_invalidate(struct intel_frontbuffer > *front, > if (origin == ORIGIN_CS) { > spin_lock(&display->fb_tracking.lock); > display->fb_tracking.busy_bits |= frontbuffer_bits; > - display->fb_tracking.flip_bits &= ~frontbuffer_bits; > spin_unlock(&display->fb_tracking.lock); > } > > diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h > b/drivers/gpu/drm/i915/display/intel_frontbuffer.h > index 2fee12eaf9b6..293c2d0152d6 100644 > --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h > +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h > @@ -68,10 +68,6 @@ struct intel_frontbuffer { > GENMASK(INTEL_FRONTBUFFER_BITS_PER_PIPE * ((pipe) + 1) - 1, \ > INTEL_FRONTBUFFER_BITS_PER_PIPE * (pipe)) > > -void intel_frontbuffer_flip_prepare(struct intel_display *display, > - unsigned frontbuffer_bits); > -void intel_frontbuffer_flip_complete(struct intel_display *display, > - unsigned frontbuffer_bits); > void intel_frontbuffer_flip(struct intel_display *display, > unsigned frontbuffer_bits); -- Jani Nikula, Intel
