diff mbox series

[5/9] drm/i915: Reuse vlv_primary_min_alignment() for sprites as well

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

Commit Message

Ville Syrjälä Oct. 9, 2024, 6:22 p.m. UTC
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>
---
 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(-)

Comments

Hogander, Jouni Oct. 24, 2024, 10:47 a.m. UTC | #1
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 mbox series

Patch

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) {