Re: [PATCH 1/9] drm/i915: Split gen2 vs. gen3 .max_stride()

2024-05-06 Thread Jani Nikula
On Mon, 06 May 2024, Ville Syrjala  wrote:
> From: Ville Syrjälä 
>
> Plane .max_stride() is alreayd a vfunc so having one made

*already

> up of two branches based on the display version is silly.
> Split i9xx_plane_max_stride() into gen2 vs. gen3 variants
> so  that we get rid of said check.

-' '

> Signed-off-by: Ville Syrjälä 

Reviewed-by: Jani Nikula 

> ---
>  drivers/gpu/drm/i915/display/i9xx_plane.c | 32 +--
>  1 file changed, 18 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c 
> b/drivers/gpu/drm/i915/display/i9xx_plane.c
> index 3442264443e5..21303fa4f08f 100644
> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> @@ -741,23 +741,25 @@ i965_plane_max_stride(struct intel_plane *plane,
>  }
>  
>  static unsigned int
> -i9xx_plane_max_stride(struct intel_plane *plane,
> +i915_plane_max_stride(struct intel_plane *plane,
> u32 pixel_format, u64 modifier,
> unsigned int rotation)
>  {
> - struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
> + if (modifier == I915_FORMAT_MOD_X_TILED)
> + return 8 * 1024;
> + else
> + return 16 * 1024;
> +}
>  
> - if (DISPLAY_VER(dev_priv) >= 3) {
> - if (modifier == I915_FORMAT_MOD_X_TILED)
> - return 8*1024;
> - else
> - return 16*1024;
> - } else {
> - if (plane->i9xx_plane == PLANE_C)
> - return 4*1024;
> - else
> - return 8*1024;
> - }
> +static unsigned int
> +i8xx_plane_max_stride(struct intel_plane *plane,
> +   u32 pixel_format, u64 modifier,
> +   unsigned int rotation)
> +{
> + if (plane->i9xx_plane == PLANE_C)
> + return 4 * 1024;
> + else
> + return 8 * 1024;
>  }
>  
>  static const struct drm_plane_funcs i965_plane_funcs = {
> @@ -854,8 +856,10 @@ intel_primary_plane_create(struct drm_i915_private 
> *dev_priv, enum pipe pipe)
>   if (HAS_GMCH(dev_priv)) {
>   if (DISPLAY_VER(dev_priv) >= 4)
>   plane->max_stride = i965_plane_max_stride;
> + else if (DISPLAY_VER(dev_priv) == 3)
> + plane->max_stride = i915_plane_max_stride;
>   else
> - plane->max_stride = i9xx_plane_max_stride;
> + plane->max_stride = i8xx_plane_max_stride;
>   } else {
>   if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))
>   plane->max_stride = hsw_primary_max_stride;

-- 
Jani Nikula, Intel


[PATCH 1/9] drm/i915: Split gen2 vs. gen3 .max_stride()

2024-05-06 Thread Ville Syrjala
From: Ville Syrjälä 

Plane .max_stride() is alreayd a vfunc so having one made
up of two branches based on the display version is silly.
Split i9xx_plane_max_stride() into gen2 vs. gen3 variants
so  that we get rid of said check.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/i9xx_plane.c | 32 +--
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c 
b/drivers/gpu/drm/i915/display/i9xx_plane.c
index 3442264443e5..21303fa4f08f 100644
--- a/drivers/gpu/drm/i915/display/i9xx_plane.c
+++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
@@ -741,23 +741,25 @@ i965_plane_max_stride(struct intel_plane *plane,
 }
 
 static unsigned int
-i9xx_plane_max_stride(struct intel_plane *plane,
+i915_plane_max_stride(struct intel_plane *plane,
  u32 pixel_format, u64 modifier,
  unsigned int rotation)
 {
-   struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
+   if (modifier == I915_FORMAT_MOD_X_TILED)
+   return 8 * 1024;
+   else
+   return 16 * 1024;
+}
 
-   if (DISPLAY_VER(dev_priv) >= 3) {
-   if (modifier == I915_FORMAT_MOD_X_TILED)
-   return 8*1024;
-   else
-   return 16*1024;
-   } else {
-   if (plane->i9xx_plane == PLANE_C)
-   return 4*1024;
-   else
-   return 8*1024;
-   }
+static unsigned int
+i8xx_plane_max_stride(struct intel_plane *plane,
+ u32 pixel_format, u64 modifier,
+ unsigned int rotation)
+{
+   if (plane->i9xx_plane == PLANE_C)
+   return 4 * 1024;
+   else
+   return 8 * 1024;
 }
 
 static const struct drm_plane_funcs i965_plane_funcs = {
@@ -854,8 +856,10 @@ intel_primary_plane_create(struct drm_i915_private 
*dev_priv, enum pipe pipe)
if (HAS_GMCH(dev_priv)) {
if (DISPLAY_VER(dev_priv) >= 4)
plane->max_stride = i965_plane_max_stride;
+   else if (DISPLAY_VER(dev_priv) == 3)
+   plane->max_stride = i915_plane_max_stride;
else
-   plane->max_stride = i9xx_plane_max_stride;
+   plane->max_stride = i8xx_plane_max_stride;
} else {
if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))
plane->max_stride = hsw_primary_max_stride;
-- 
2.43.2