Re: [Intel-gfx] [PATCH 08/14] drm/i915: Clean up ivb+ sprite plane registers

2022-01-14 Thread Souza, Jose
On Wed, 2021-12-01 at 17:25 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> Use REG_BIT() & co. to polish the ivb+ sprite plane registers.

Reviewed-by: José Roberto de Souza 

> 
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/i915/display/intel_sprite.c | 20 +++--
>  drivers/gpu/drm/i915/i915_reg.h | 81 +
>  2 files changed, 62 insertions(+), 39 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
> b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 2067a7bca4a8..70083d04a9fd 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -700,7 +700,7 @@ static u32 ivb_sprite_ctl_crtc(const struct 
> intel_crtc_state *crtc_state)
>   u32 sprctl = 0;
>  
>   if (crtc_state->gamma_enable)
> - sprctl |= SPRITE_GAMMA_ENABLE;
> + sprctl |= SPRITE_PIPE_GAMMA_ENABLE;
>  
>   if (crtc_state->csc_enable)
>   sprctl |= SPRITE_PIPE_CSC_ENABLE;
> @@ -770,7 +770,7 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state 
> *crtc_state,
>   }
>  
>   if (!ivb_need_sprite_gamma(plane_state))
> - sprctl |= SPRITE_INT_GAMMA_DISABLE;
> + sprctl |= SPRITE_PLANE_GAMMA_DISABLE;
>  
>   if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
>   sprctl |= SPRITE_YUV_TO_RGB_CSC_FORMAT_BT709;
> @@ -863,14 +863,18 @@ ivb_sprite_update_noarm(struct intel_plane *plane,
>   unsigned long irqflags;
>  
>   if (crtc_w != src_w || crtc_h != src_h)
> - sprscale = SPRITE_SCALE_ENABLE | ((src_w - 1) << 16) | (src_h - 
> 1);
> + sprscale = SPRITE_SCALE_ENABLE |
> + SPRITE_SRC_WIDTH(src_w - 1) |
> + SPRITE_SRC_HEIGHT(src_h - 1);
>  
>   spin_lock_irqsave(_priv->uncore.lock, irqflags);
>  
>   intel_de_write_fw(dev_priv, SPRSTRIDE(pipe),
> plane_state->view.color_plane[0].mapping_stride);
> - intel_de_write_fw(dev_priv, SPRPOS(pipe), (crtc_y << 16) | crtc_x);
> - intel_de_write_fw(dev_priv, SPRSIZE(pipe), ((crtc_h - 1) << 16) | 
> (crtc_w - 1));
> + intel_de_write_fw(dev_priv, SPRPOS(pipe),
> +   SPRITE_POS_Y(crtc_y) | SPRITE_POS_X(crtc_x));
> + intel_de_write_fw(dev_priv, SPRSIZE(pipe),
> +   SPRITE_HEIGHT(crtc_h - 1) | SPRITE_WIDTH(crtc_w - 1));
>   if (IS_IVYBRIDGE(dev_priv))
>   intel_de_write_fw(dev_priv, SPRSCALE(pipe), sprscale);
>  
> @@ -907,10 +911,12 @@ ivb_sprite_update_arm(struct intel_plane *plane,
>   /* HSW consolidates SPRTILEOFF and SPRLINOFF into a single SPROFFSET
>* register */
>   if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
> - intel_de_write_fw(dev_priv, SPROFFSET(pipe), (y << 16) | x);
> + intel_de_write_fw(dev_priv, SPROFFSET(pipe),
> +   SPRITE_OFFSET_Y(y) | SPRITE_OFFSET_X(x));
>   } else {
>   intel_de_write_fw(dev_priv, SPRLINOFF(pipe), linear_offset);
> - intel_de_write_fw(dev_priv, SPRTILEOFF(pipe), (y << 16) | x);
> + intel_de_write_fw(dev_priv, SPRTILEOFF(pipe),
> +   SPRITE_OFFSET_Y(y) | SPRITE_OFFSET_X(x));
>   }
>  
>   /*
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 8678cbab1d33..0bd47a929f5d 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7046,50 +7046,67 @@ enum {
>  #define DVSGAMCMAX_ILK(pipe, i) _MMIO(_PIPE(pipe, _DVSAGAMCMAX_ILK, 
> _DVSBGAMCMAX_ILK) + (i) * 4) /* 3 x u1.10 */
>  
>  #define _SPRA_CTL0x70280
> -#define   SPRITE_ENABLE  (1 << 31)
> -#define   SPRITE_GAMMA_ENABLE(1 << 30)
> -#define   SPRITE_YUV_RANGE_CORRECTION_DISABLE(1 << 28)
> -#define   SPRITE_PIXFORMAT_MASK  (7 << 25)
> -#define   SPRITE_FORMAT_YUV422   (0 << 25)
> -#define   SPRITE_FORMAT_RGBX101010   (1 << 25)
> -#define   SPRITE_FORMAT_RGBX888  (2 << 25)
> -#define   SPRITE_FORMAT_RGBX161616   (3 << 25)
> -#define   SPRITE_FORMAT_YUV444   (4 << 25)
> -#define   SPRITE_FORMAT_XR_BGR101010 (5 << 25) /* Extended range */
> -#define   SPRITE_PIPE_CSC_ENABLE (1 << 24)
> -#define   SPRITE_SOURCE_KEY  (1 << 22)
> -#define   SPRITE_RGB_ORDER_RGBX  (1 << 20) /* only for 888 and 
> 161616 */
> -#define   SPRITE_YUV_TO_RGB_CSC_DISABLE  (1 << 19)
> -#define   SPRITE_YUV_TO_RGB_CSC_FORMAT_BT709 (1 << 18) /* 0 is BT601 */
> -#define   SPRITE_YUV_ORDER_MASK  (3 << 16)
> -#define   SPRITE_YUV_ORDER_YUYV  (0 << 16)
> -#define   SPRITE_YUV_ORDER_UYVY  (1 << 16)
> -#define   SPRITE_YUV_ORDER_YVYU  (2 << 16)
> -#define   SPRITE_YUV_ORDER_VYUY  (3 << 16)
> -#define   SPRITE_ROTATE_180  (1 << 15)
> -#define   

[Intel-gfx] [PATCH 08/14] drm/i915: Clean up ivb+ sprite plane registers

2021-12-01 Thread Ville Syrjala
From: Ville Syrjälä 

Use REG_BIT() & co. to polish the ivb+ sprite plane registers.

Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_sprite.c | 20 +++--
 drivers/gpu/drm/i915/i915_reg.h | 81 +
 2 files changed, 62 insertions(+), 39 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
b/drivers/gpu/drm/i915/display/intel_sprite.c
index 2067a7bca4a8..70083d04a9fd 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -700,7 +700,7 @@ static u32 ivb_sprite_ctl_crtc(const struct 
intel_crtc_state *crtc_state)
u32 sprctl = 0;
 
if (crtc_state->gamma_enable)
-   sprctl |= SPRITE_GAMMA_ENABLE;
+   sprctl |= SPRITE_PIPE_GAMMA_ENABLE;
 
if (crtc_state->csc_enable)
sprctl |= SPRITE_PIPE_CSC_ENABLE;
@@ -770,7 +770,7 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state 
*crtc_state,
}
 
if (!ivb_need_sprite_gamma(plane_state))
-   sprctl |= SPRITE_INT_GAMMA_DISABLE;
+   sprctl |= SPRITE_PLANE_GAMMA_DISABLE;
 
if (plane_state->hw.color_encoding == DRM_COLOR_YCBCR_BT709)
sprctl |= SPRITE_YUV_TO_RGB_CSC_FORMAT_BT709;
@@ -863,14 +863,18 @@ ivb_sprite_update_noarm(struct intel_plane *plane,
unsigned long irqflags;
 
if (crtc_w != src_w || crtc_h != src_h)
-   sprscale = SPRITE_SCALE_ENABLE | ((src_w - 1) << 16) | (src_h - 
1);
+   sprscale = SPRITE_SCALE_ENABLE |
+   SPRITE_SRC_WIDTH(src_w - 1) |
+   SPRITE_SRC_HEIGHT(src_h - 1);
 
spin_lock_irqsave(_priv->uncore.lock, irqflags);
 
intel_de_write_fw(dev_priv, SPRSTRIDE(pipe),
  plane_state->view.color_plane[0].mapping_stride);
-   intel_de_write_fw(dev_priv, SPRPOS(pipe), (crtc_y << 16) | crtc_x);
-   intel_de_write_fw(dev_priv, SPRSIZE(pipe), ((crtc_h - 1) << 16) | 
(crtc_w - 1));
+   intel_de_write_fw(dev_priv, SPRPOS(pipe),
+ SPRITE_POS_Y(crtc_y) | SPRITE_POS_X(crtc_x));
+   intel_de_write_fw(dev_priv, SPRSIZE(pipe),
+ SPRITE_HEIGHT(crtc_h - 1) | SPRITE_WIDTH(crtc_w - 1));
if (IS_IVYBRIDGE(dev_priv))
intel_de_write_fw(dev_priv, SPRSCALE(pipe), sprscale);
 
@@ -907,10 +911,12 @@ ivb_sprite_update_arm(struct intel_plane *plane,
/* HSW consolidates SPRTILEOFF and SPRLINOFF into a single SPROFFSET
 * register */
if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
-   intel_de_write_fw(dev_priv, SPROFFSET(pipe), (y << 16) | x);
+   intel_de_write_fw(dev_priv, SPROFFSET(pipe),
+ SPRITE_OFFSET_Y(y) | SPRITE_OFFSET_X(x));
} else {
intel_de_write_fw(dev_priv, SPRLINOFF(pipe), linear_offset);
-   intel_de_write_fw(dev_priv, SPRTILEOFF(pipe), (y << 16) | x);
+   intel_de_write_fw(dev_priv, SPRTILEOFF(pipe),
+ SPRITE_OFFSET_Y(y) | SPRITE_OFFSET_X(x));
}
 
/*
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 8678cbab1d33..0bd47a929f5d 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -7046,50 +7046,67 @@ enum {
 #define DVSGAMCMAX_ILK(pipe, i) _MMIO(_PIPE(pipe, _DVSAGAMCMAX_ILK, 
_DVSBGAMCMAX_ILK) + (i) * 4) /* 3 x u1.10 */
 
 #define _SPRA_CTL  0x70280
-#define   SPRITE_ENABLE(1 << 31)
-#define   SPRITE_GAMMA_ENABLE  (1 << 30)
-#define   SPRITE_YUV_RANGE_CORRECTION_DISABLE  (1 << 28)
-#define   SPRITE_PIXFORMAT_MASK(7 << 25)
-#define   SPRITE_FORMAT_YUV422 (0 << 25)
-#define   SPRITE_FORMAT_RGBX101010 (1 << 25)
-#define   SPRITE_FORMAT_RGBX888(2 << 25)
-#define   SPRITE_FORMAT_RGBX161616 (3 << 25)
-#define   SPRITE_FORMAT_YUV444 (4 << 25)
-#define   SPRITE_FORMAT_XR_BGR101010   (5 << 25) /* Extended range */
-#define   SPRITE_PIPE_CSC_ENABLE   (1 << 24)
-#define   SPRITE_SOURCE_KEY(1 << 22)
-#define   SPRITE_RGB_ORDER_RGBX(1 << 20) /* only for 888 and 
161616 */
-#define   SPRITE_YUV_TO_RGB_CSC_DISABLE(1 << 19)
-#define   SPRITE_YUV_TO_RGB_CSC_FORMAT_BT709   (1 << 18) /* 0 is BT601 */
-#define   SPRITE_YUV_ORDER_MASK(3 << 16)
-#define   SPRITE_YUV_ORDER_YUYV(0 << 16)
-#define   SPRITE_YUV_ORDER_UYVY(1 << 16)
-#define   SPRITE_YUV_ORDER_YVYU(2 << 16)
-#define   SPRITE_YUV_ORDER_VYUY(3 << 16)
-#define   SPRITE_ROTATE_180(1 << 15)
-#define   SPRITE_TRICKLE_FEED_DISABLE  (1 << 14)
-#define   SPRITE_INT_GAMMA_DISABLE (1 << 13)
-#define   SPRITE_TILED (1 << 10)
-#define   SPRITE_DEST_KEY  (1 << 2)
+#define   SPRITE_ENABLE