Message ID | 20240320160424.700-6-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Allow the first async flip to change modifier | expand |
> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville > Syrjala > Sent: Wednesday, March 20, 2024 9:34 PM > To: intel-gfx@lists.freedesktop.org > Subject: [PATCH 5/6] drm/i915: > s/need_async_flip_disable_wa/need_async_flip_toggle_wa/ > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Rename need_async_flip_disable_wa to need_async_flip_toggle_wa to better > reflect the fact that we need to deal with the bad PLANE_CTL_ASYNC_FLIP > double buffering behaviour going both ways. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Thanks and Regards, Arun R Murthy -------------------- > --- > drivers/gpu/drm/i915/display/i9xx_plane.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_atomic_plane.c | 2 +- > drivers/gpu/drm/i915/display/intel_display.c | 2 +- > drivers/gpu/drm/i915/display/intel_display_types.h | 2 +- > drivers/gpu/drm/i915/display/skl_universal_plane.c | 5 ++--- > 5 files changed, 7 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c > b/drivers/gpu/drm/i915/display/i9xx_plane.c > index 76fc7626051b..3442264443e5 100644 > --- a/drivers/gpu/drm/i915/display/i9xx_plane.c > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c > @@ -456,7 +456,7 @@ static void i9xx_plane_update_arm(struct intel_plane > *plane, > dspcntr = plane_state->ctl | i9xx_plane_ctl_crtc(crtc_state); > > /* see intel_plane_atomic_calc_changes() */ > - if (plane->need_async_flip_disable_wa && > + if (plane->need_async_flip_toggle_wa && > crtc_state->async_flip_planes & BIT(plane->id)) > dspcntr |= DISP_ASYNC_FLIP; > > @@ -878,7 +878,7 @@ intel_primary_plane_create(struct drm_i915_private > *dev_priv, enum pipe pipe) > plane->enable_flip_done = vlv_primary_enable_flip_done; > plane->disable_flip_done = vlv_primary_disable_flip_done; > } else if (IS_BROADWELL(dev_priv)) { > - plane->need_async_flip_disable_wa = true; > + plane->need_async_flip_toggle_wa = true; > plane->async_flip = g4x_primary_async_flip; > plane->enable_flip_done = bdw_primary_enable_flip_done; > plane->disable_flip_done = bdw_primary_disable_flip_done; > diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c > b/drivers/gpu/drm/i915/display/intel_atomic_plane.c > index 7098a34a17c8..b083b985d170 100644 > --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c > +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c > @@ -600,7 +600,7 @@ static int intel_plane_atomic_calc_changes(const struct > intel_crtc_state *old_cr > if (intel_plane_do_async_flip(plane, old_crtc_state, new_crtc_state)) { > new_crtc_state->do_async_flip = true; > new_crtc_state->async_flip_planes |= BIT(plane->id); > - } else if (plane->need_async_flip_disable_wa && > + } else if (plane->need_async_flip_toggle_wa && > new_crtc_state->uapi.async_flip) { > /* > * On platforms with double buffered async flip bit we diff --git > a/drivers/gpu/drm/i915/display/intel_display.c > b/drivers/gpu/drm/i915/display/intel_display.c > index dbcda79cf53c..8a10130c6f37 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -1109,7 +1109,7 @@ static void intel_crtc_async_flip_disable_wa(struct > intel_atomic_state *state, > int i; > > for_each_old_intel_plane_in_state(state, plane, old_plane_state, i) { > - if (plane->need_async_flip_disable_wa && > + if (plane->need_async_flip_toggle_wa && > plane->pipe == crtc->pipe && > disable_async_flip_planes & BIT(plane->id)) { > /* > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h > b/drivers/gpu/drm/i915/display/intel_display_types.h > index 8b9860cefaae..4cbb6be5ff48 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > @@ -1557,7 +1557,7 @@ struct intel_plane { > enum i9xx_plane_id i9xx_plane; > enum plane_id id; > enum pipe pipe; > - bool need_async_flip_disable_wa; > + bool need_async_flip_toggle_wa; > u32 frontbuffer_bit; > > struct { > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index ad4c90344f68..0a8e781a3648 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -1175,7 +1175,7 @@ skl_plane_update_arm(struct intel_plane *plane, > skl_plane_ctl_crtc(crtc_state); > > /* see intel_plane_atomic_calc_changes() */ > - if (plane->need_async_flip_disable_wa && > + if (plane->need_async_flip_toggle_wa && > crtc_state->async_flip_planes & BIT(plane->id)) > plane_ctl |= PLANE_CTL_ASYNC_FLIP; > > @@ -2371,8 +2371,7 @@ skl_universal_plane_create(struct drm_i915_private > *dev_priv, > plane->check_plane = skl_plane_check; > > if (plane_id == PLANE_PRIMARY) { > - plane->need_async_flip_disable_wa = > IS_DISPLAY_VER(dev_priv, > - 9, 10); > + plane->need_async_flip_toggle_wa = IS_DISPLAY_VER(dev_priv, > 9, 10); > plane->async_flip = skl_plane_async_flip; > plane->enable_flip_done = skl_plane_enable_flip_done; > plane->disable_flip_done = skl_plane_disable_flip_done; > -- > 2.43.2
diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c index 76fc7626051b..3442264443e5 100644 --- a/drivers/gpu/drm/i915/display/i9xx_plane.c +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c @@ -456,7 +456,7 @@ static void i9xx_plane_update_arm(struct intel_plane *plane, dspcntr = plane_state->ctl | i9xx_plane_ctl_crtc(crtc_state); /* see intel_plane_atomic_calc_changes() */ - if (plane->need_async_flip_disable_wa && + if (plane->need_async_flip_toggle_wa && crtc_state->async_flip_planes & BIT(plane->id)) dspcntr |= DISP_ASYNC_FLIP; @@ -878,7 +878,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe) plane->enable_flip_done = vlv_primary_enable_flip_done; plane->disable_flip_done = vlv_primary_disable_flip_done; } else if (IS_BROADWELL(dev_priv)) { - plane->need_async_flip_disable_wa = true; + plane->need_async_flip_toggle_wa = true; plane->async_flip = g4x_primary_async_flip; plane->enable_flip_done = bdw_primary_enable_flip_done; plane->disable_flip_done = bdw_primary_disable_flip_done; diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c index 7098a34a17c8..b083b985d170 100644 --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c @@ -600,7 +600,7 @@ static int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_cr if (intel_plane_do_async_flip(plane, old_crtc_state, new_crtc_state)) { new_crtc_state->do_async_flip = true; new_crtc_state->async_flip_planes |= BIT(plane->id); - } else if (plane->need_async_flip_disable_wa && + } else if (plane->need_async_flip_toggle_wa && new_crtc_state->uapi.async_flip) { /* * On platforms with double buffered async flip bit we diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index dbcda79cf53c..8a10130c6f37 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -1109,7 +1109,7 @@ static void intel_crtc_async_flip_disable_wa(struct intel_atomic_state *state, int i; for_each_old_intel_plane_in_state(state, plane, old_plane_state, i) { - if (plane->need_async_flip_disable_wa && + if (plane->need_async_flip_toggle_wa && plane->pipe == crtc->pipe && disable_async_flip_planes & BIT(plane->id)) { /* diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index 8b9860cefaae..4cbb6be5ff48 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -1557,7 +1557,7 @@ struct intel_plane { enum i9xx_plane_id i9xx_plane; enum plane_id id; enum pipe pipe; - bool need_async_flip_disable_wa; + bool need_async_flip_toggle_wa; u32 frontbuffer_bit; struct { diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index ad4c90344f68..0a8e781a3648 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -1175,7 +1175,7 @@ skl_plane_update_arm(struct intel_plane *plane, skl_plane_ctl_crtc(crtc_state); /* see intel_plane_atomic_calc_changes() */ - if (plane->need_async_flip_disable_wa && + if (plane->need_async_flip_toggle_wa && crtc_state->async_flip_planes & BIT(plane->id)) plane_ctl |= PLANE_CTL_ASYNC_FLIP; @@ -2371,8 +2371,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv, plane->check_plane = skl_plane_check; if (plane_id == PLANE_PRIMARY) { - plane->need_async_flip_disable_wa = IS_DISPLAY_VER(dev_priv, - 9, 10); + plane->need_async_flip_toggle_wa = IS_DISPLAY_VER(dev_priv, 9, 10); plane->async_flip = skl_plane_async_flip; plane->enable_flip_done = skl_plane_enable_flip_done; plane->disable_flip_done = skl_plane_disable_flip_done;