Message ID | 20241009182207.22900-6-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Async flip + compression, and some plane cleanups | expand |
On Wed, 2024-10-09 at 21:22 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Rename vlv_primary_min_alignment() to vlv_plane_min_alignment() > and use it to replace vlv_sprite_min_alignment() since the > behaviour is now identical when the plane init doesn't set up > any async flips stuff. > > Technically VLV/CHV sprites do support async flips, so this > also makes us a bit more future proof if/when we extend async > flip support to more than one plane. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jouni Högander <jouni.hogander@intel.com> > --- > drivers/gpu/drm/i915/display/i9xx_plane.c | 8 ++++---- > drivers/gpu/drm/i915/display/i9xx_plane.h | 4 ++++ > drivers/gpu/drm/i915/display/intel_sprite.c | 17 +---------------- > 3 files changed, 9 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c > b/drivers/gpu/drm/i915/display/i9xx_plane.c > index 8d3346199645..943dcd3b7a0e 100644 > --- a/drivers/gpu/drm/i915/display/i9xx_plane.c > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c > @@ -775,9 +775,9 @@ i8xx_plane_max_stride(struct intel_plane *plane, > return 8 * 1024; > } > > -static unsigned int vlv_primary_min_alignment(struct intel_plane > *plane, > - const struct > drm_framebuffer *fb, > - int color_plane) > +unsigned int vlv_plane_min_alignment(struct intel_plane *plane, > + const struct drm_framebuffer > *fb, > + int color_plane) > { > if (intel_plane_can_async_flip(plane, fb->modifier)) > return 256 * 1024; > @@ -938,7 +938,7 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > } > > if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) > - plane->min_alignment = vlv_primary_min_alignment; > + plane->min_alignment = vlv_plane_min_alignment; > else if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv)) > plane->min_alignment = g4x_primary_min_alignment; > else if (DISPLAY_VER(dev_priv) == 4) > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.h > b/drivers/gpu/drm/i915/display/i9xx_plane.h > index 0ca12d1e6839..457f4bccf106 100644 > --- a/drivers/gpu/drm/i915/display/i9xx_plane.h > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.h > @@ -9,6 +9,7 @@ > #include <linux/types.h> > > enum pipe; > +struct drm_framebuffer; > struct drm_i915_private; > struct intel_crtc; > struct intel_initial_plane_config; > @@ -19,6 +20,9 @@ struct intel_plane_state; > unsigned int i965_plane_max_stride(struct intel_plane *plane, > u32 pixel_format, u64 modifier, > unsigned int rotation); > +unsigned int vlv_plane_min_alignment(struct intel_plane *plane, > + const struct drm_framebuffer > *fb, > + int colot_plane); > int i9xx_check_plane_surface(struct intel_plane_state *plane_state); > > struct intel_plane * > diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c > b/drivers/gpu/drm/i915/display/intel_sprite.c > index e6fadcef58e0..13996d7059ad 100644 > --- a/drivers/gpu/drm/i915/display/intel_sprite.c > +++ b/drivers/gpu/drm/i915/display/intel_sprite.c > @@ -253,21 +253,6 @@ int vlv_plane_min_cdclk(const struct > intel_crtc_state *crtc_state, > return DIV_ROUND_UP(pixel_rate * num, den); > } > > -static unsigned int vlv_sprite_min_alignment(struct intel_plane > *plane, > - const struct > drm_framebuffer *fb, > - int color_plane) > -{ > - switch (fb->modifier) { > - case I915_FORMAT_MOD_X_TILED: > - return 4 * 1024; > - case DRM_FORMAT_MOD_LINEAR: > - return 128 * 1024; > - default: > - MISSING_CASE(fb->modifier); > - return 0; > - } > -} > - > static u32 vlv_sprite_ctl_crtc(const struct intel_crtc_state > *crtc_state) > { > u32 sprctl = 0; > @@ -1616,7 +1601,7 @@ intel_sprite_plane_create(struct > drm_i915_private *dev_priv, > plane->get_hw_state = vlv_sprite_get_hw_state; > plane->check_plane = vlv_sprite_check; > plane->max_stride = i965_plane_max_stride; > - plane->min_alignment = vlv_sprite_min_alignment; > + plane->min_alignment = vlv_plane_min_alignment; > plane->min_cdclk = vlv_plane_min_cdclk; > > if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c index 8d3346199645..943dcd3b7a0e 100644 --- a/drivers/gpu/drm/i915/display/i9xx_plane.c +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c @@ -775,9 +775,9 @@ i8xx_plane_max_stride(struct intel_plane *plane, return 8 * 1024; } -static unsigned int vlv_primary_min_alignment(struct intel_plane *plane, - const struct drm_framebuffer *fb, - int color_plane) +unsigned int vlv_plane_min_alignment(struct intel_plane *plane, + const struct drm_framebuffer *fb, + int color_plane) { if (intel_plane_can_async_flip(plane, fb->modifier)) return 256 * 1024; @@ -938,7 +938,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe) } if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) - plane->min_alignment = vlv_primary_min_alignment; + plane->min_alignment = vlv_plane_min_alignment; else if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv)) plane->min_alignment = g4x_primary_min_alignment; else if (DISPLAY_VER(dev_priv) == 4) diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.h b/drivers/gpu/drm/i915/display/i9xx_plane.h index 0ca12d1e6839..457f4bccf106 100644 --- a/drivers/gpu/drm/i915/display/i9xx_plane.h +++ b/drivers/gpu/drm/i915/display/i9xx_plane.h @@ -9,6 +9,7 @@ #include <linux/types.h> enum pipe; +struct drm_framebuffer; struct drm_i915_private; struct intel_crtc; struct intel_initial_plane_config; @@ -19,6 +20,9 @@ struct intel_plane_state; unsigned int i965_plane_max_stride(struct intel_plane *plane, u32 pixel_format, u64 modifier, unsigned int rotation); +unsigned int vlv_plane_min_alignment(struct intel_plane *plane, + const struct drm_framebuffer *fb, + int colot_plane); int i9xx_check_plane_surface(struct intel_plane_state *plane_state); struct intel_plane * diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c index e6fadcef58e0..13996d7059ad 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -253,21 +253,6 @@ int vlv_plane_min_cdclk(const struct intel_crtc_state *crtc_state, return DIV_ROUND_UP(pixel_rate * num, den); } -static unsigned int vlv_sprite_min_alignment(struct intel_plane *plane, - const struct drm_framebuffer *fb, - int color_plane) -{ - switch (fb->modifier) { - case I915_FORMAT_MOD_X_TILED: - return 4 * 1024; - case DRM_FORMAT_MOD_LINEAR: - return 128 * 1024; - default: - MISSING_CASE(fb->modifier); - return 0; - } -} - static u32 vlv_sprite_ctl_crtc(const struct intel_crtc_state *crtc_state) { u32 sprctl = 0; @@ -1616,7 +1601,7 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv, plane->get_hw_state = vlv_sprite_get_hw_state; plane->check_plane = vlv_sprite_check; plane->max_stride = i965_plane_max_stride; - plane->min_alignment = vlv_sprite_min_alignment; + plane->min_alignment = vlv_plane_min_alignment; plane->min_cdclk = vlv_plane_min_cdclk; if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {