[PATCH v1] drm/xe: avoid the async_flip update in the initial plane config

Hogander, Jouni jouni.hogander at intel.com
Fri Jun 14 08:41:29 UTC 2024


On Fri, 2024-06-14 at 08:23 +0000, Govindapillai, Vinod wrote:
> On Fri, 2024-06-14 at 07:11 +0000, Hogander, Jouni wrote:
> > On Fri, 2024-04-19 at 17:09 +0300, Vinod Govindapillai wrote:
> > > Async flip call is not needed. The updated fb mapping is updated
> > > as part of the fixup_initial_plane_config() call. Otherwise we
> > > end up updating the PLAN_SURF register twice with the same info.
> > 
> > async_flip is writing PLANE_CTL as well. Is it ok to leave that
> > out?
> 
> Thanks for the review Jouni!
> 
> Yes.. that is not needed for the initial plane config. The i915
> counterpart don't have this either!
> I had confirmed this with Maarten and Ville. According to Maarten,
> most likely this part was copied
> from i915 which got dropped when refactoring.

Reviewed-by: Jouni Högander <jouni.hogander at intel.com>

> 
> BR
> Vinod
> 
> > 
> > BR,
> > 
> > Jouni Högander
> > 
> > > 
> > > v2: avoid async_flip instead of removing fixup call (Ville)
> > > 
> > > Signed-off-by: Vinod Govindapillai
> > > <vinod.govindapillai at intel.com>
> > > ---
> > >  drivers/gpu/drm/xe/display/xe_plane_initial.c | 10 ----------
> > >  1 file changed, 10 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> > > b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> > > index 9693c56d386b..b5f8381b593d 100644
> > > --- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> > > +++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> > > @@ -189,8 +189,6 @@ intel_find_initial_plane_obj(struct
> > > intel_crtc
> > > *crtc,
> > >                 to_intel_plane(crtc->base.primary);
> > >         struct intel_plane_state *plane_state =
> > >                 to_intel_plane_state(plane->base.state);
> > > -       struct intel_crtc_state *crtc_state =
> > > -               to_intel_crtc_state(crtc->base.state);
> > >         struct drm_framebuffer *fb;
> > >         struct i915_vma *vma;
> > >  
> > > @@ -236,14 +234,6 @@ intel_find_initial_plane_obj(struct
> > > intel_crtc
> > > *crtc,
> > >         atomic_or(plane->frontbuffer_bit,
> > > &to_intel_frontbuffer(fb)-
> > > > bits);
> > >  
> > >         plane_config->vma = vma;
> > > -
> > > -       /*
> > > -        * Flip to the newly created mapping ASAP, so we can re-
> > > use
> > > the
> > > -        * first part of GGTT for WOPCM, prevent flickering, and
> > > prevent
> > > -        * the lookup of sysmem scratch pages.
> > > -        */
> > > -       plane->check_plane(crtc_state, plane_state);
> > > -       plane->async_flip(plane, crtc_state, plane_state, true);
> > >         return;
> > >  
> > >  nofb:
> > 
> 



More information about the Intel-gfx mailing list