All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Souza, Jose" <jose.souza@intel.com>
To: "ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH 10/14] drm/i915: Clean up g4x+ sprite plane registers
Date: Fri, 14 Jan 2022 16:38:56 +0000	[thread overview]
Message-ID: <d09515b10ede66a1b1519c171082f75e2e4e0370.camel@intel.com> (raw)
In-Reply-To: <20211201152552.7821-11-ville.syrjala@linux.intel.com>

On Wed, 2021-12-01 at 17:25 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use REG_BIT() & co. to polish the g4x+ sprite plane registers.

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_sprite.c | 12 ++--
>  drivers/gpu/drm/i915/i915_reg.h             | 73 +++++++++++++--------
>  2 files changed, 53 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index eb9ce96c030f..6f2a560700ce 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -1054,7 +1054,7 @@ static u32 g4x_sprite_ctl_crtc(const struct intel_crtc_state *crtc_state)
>  	u32 dvscntr = 0;
>  
>  	if (crtc_state->gamma_enable)
> -		dvscntr |= DVS_GAMMA_ENABLE;
> +		dvscntr |= DVS_PIPE_GAMMA_ENABLE;
>  
>  	if (crtc_state->csc_enable)
>  		dvscntr |= DVS_PIPE_CSC_ENABLE;
> @@ -1206,14 +1206,18 @@ g4x_sprite_update_noarm(struct intel_plane *plane,
>  	unsigned long irqflags;
>  
>  	if (crtc_w != src_w || crtc_h != src_h)
> -		dvsscale = DVS_SCALE_ENABLE | ((src_w - 1) << 16) | (src_h - 1);
> +		dvsscale = DVS_SCALE_ENABLE |
> +			DVS_SRC_WIDTH(src_w - 1) |
> +			DVS_SRC_HEIGHT(src_h - 1);
>  
>  	spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
>  
>  	intel_de_write_fw(dev_priv, DVSSTRIDE(pipe),
>  			  plane_state->view.color_plane[0].mapping_stride);
> -	intel_de_write_fw(dev_priv, DVSPOS(pipe), (crtc_y << 16) | crtc_x);
> -	intel_de_write_fw(dev_priv, DVSSIZE(pipe), ((crtc_h - 1) << 16) | (crtc_w - 1));
> +	intel_de_write_fw(dev_priv, DVSPOS(pipe),
> +			  DVS_POS_Y(crtc_y) | DVS_POS_X(crtc_x));
> +	intel_de_write_fw(dev_priv, DVSSIZE(pipe),
> +			  DVS_HEIGHT(crtc_h - 1) | DVS_WIDTH(crtc_w - 1));
>  	intel_de_write_fw(dev_priv, DVSSCALE(pipe), dvsscale);
>  
>  	spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 4d61e7f2ee7c..d215cad95fe8 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -6970,46 +6970,63 @@ enum {
>  
>  /* Sprite A control */
>  #define _DVSACNTR		0x72180
> -#define   DVS_ENABLE		(1 << 31)
> -#define   DVS_GAMMA_ENABLE	(1 << 30)
> -#define   DVS_YUV_RANGE_CORRECTION_DISABLE	(1 << 27)
> -#define   DVS_PIXFORMAT_MASK	(3 << 25)
> -#define   DVS_FORMAT_YUV422	(0 << 25)
> -#define   DVS_FORMAT_RGBX101010	(1 << 25)
> -#define   DVS_FORMAT_RGBX888	(2 << 25)
> -#define   DVS_FORMAT_RGBX161616	(3 << 25)
> -#define   DVS_PIPE_CSC_ENABLE   (1 << 24)
> -#define   DVS_SOURCE_KEY	(1 << 22)
> -#define   DVS_RGB_ORDER_XBGR	(1 << 20)
> -#define   DVS_YUV_FORMAT_BT709	(1 << 18)
> -#define   DVS_YUV_ORDER_MASK	(3 << 16)
> -#define   DVS_YUV_ORDER_YUYV	(0 << 16)
> -#define   DVS_YUV_ORDER_UYVY	(1 << 16)
> -#define   DVS_YUV_ORDER_YVYU	(2 << 16)
> -#define   DVS_YUV_ORDER_VYUY	(3 << 16)
> -#define   DVS_ROTATE_180	(1 << 15)
> -#define   DVS_DEST_KEY		(1 << 2)
> -#define   DVS_TRICKLE_FEED_DISABLE (1 << 14)
> -#define   DVS_TILED		(1 << 10)
> +#define   DVS_ENABLE			REG_BIT(31)
> +#define   DVS_PIPE_GAMMA_ENABLE		REG_BIT(30)
> +#define   DVS_YUV_RANGE_CORRECTION_DISABLE	REG_BIT(27)
> +#define   DVS_FORMAT_MASK		REG_GENMASK(26, 25)
> +#define   DVS_FORMAT_YUV422		REG_FIELD_PREP(DVS_FORMAT_MASK, 0)
> +#define   DVS_FORMAT_RGBX101010		REG_FIELD_PREP(DVS_FORMAT_MASK, 1)
> +#define   DVS_FORMAT_RGBX888		REG_FIELD_PREP(DVS_FORMAT_MASK, 2)
> +#define   DVS_FORMAT_RGBX161616		REG_FIELD_PREP(DVS_FORMAT_MASK, 3)
> +#define   DVS_PIPE_CSC_ENABLE		REG_BIT(24)
> +#define   DVS_SOURCE_KEY		REG_BIT(22)
> +#define   DVS_RGB_ORDER_XBGR		REG_BIT(20)
> +#define   DVS_YUV_FORMAT_BT709		REG_BIT(18)
> +#define   DVS_YUV_ORDER_MASK		REG_GENMASK(17, 16)
> +#define   DVS_YUV_ORDER_YUYV		REG_FIELD_PREP(DVS_YUV_ORDER_MASK, 0)
> +#define   DVS_YUV_ORDER_UYVY		REG_FIELD_PREP(DVS_YUV_ORDER_MASK, 1)
> +#define   DVS_YUV_ORDER_YVYU		REG_FIELD_PREP(DVS_YUV_ORDER_MASK, 2)
> +#define   DVS_YUV_ORDER_VYUY		REG_FIELD_PREP(DVS_YUV_ORDER_MASK, 3)
> +#define   DVS_ROTATE_180		REG_BIT(15)
> +#define   DVS_DEST_KEY			REG_BIT(2)
> +#define   DVS_TRICKLE_FEED_DISABLE	REG_BIT(14)
> +#define   DVS_TILED			REG_BIT(10)
>  #define _DVSALINOFF		0x72184
>  #define _DVSASTRIDE		0x72188
>  #define _DVSAPOS		0x7218c
> +#define   DVS_POS_Y_MASK		REG_GENMASK(31, 16)
> +#define   DVS_POS_Y(y)			REG_FIELD_PREP(DVS_POS_Y_MASK, (y))
> +#define   DVS_POS_X_MASK		REG_GENMASK(15, 0)
> +#define   DVS_POS_X(x)			REG_FIELD_PREP(DVS_POS_X_MASK, (x))
>  #define _DVSASIZE		0x72190
> +#define   DVS_HEIGHT_MASK		REG_GENMASK(31, 16)
> +#define   DVS_HEIGHT(h)			REG_FIELD_PREP(DVS_HEIGHT_MASK, (h))
> +#define   DVS_WIDTH_MASK		REG_GENMASK(15, 0)
> +#define   DVS_WIDTH(w)			REG_FIELD_PREP(DVS_WIDTH_MASK, (w))
>  #define _DVSAKEYVAL		0x72194
>  #define _DVSAKEYMSK		0x72198
>  #define _DVSASURF		0x7219c
> +#define   DVS_ADDR_MASK			REG_GENMASK(31, 12)
>  #define _DVSAKEYMAXVAL		0x721a0
>  #define _DVSATILEOFF		0x721a4
> +#define   DVS_OFFSET_Y_MASK		REG_GENMASK(31, 16)
> +#define   DVS_OFFSET_Y(y)		REG_FIELD_PREP(DVS_OFFSET_Y_MASK, (y))
> +#define   DVS_OFFSET_X_MASK		REG_GENMASK(15, 0)
> +#define   DVS_OFFSET_X(x)		REG_FIELD_PREP(DVS_OFFSET_X_MASK, (x))
>  #define _DVSASURFLIVE		0x721ac
>  #define _DVSAGAMC_G4X		0x721e0 /* g4x */
>  #define _DVSASCALE		0x72204
> -#define   DVS_SCALE_ENABLE	(1 << 31)
> -#define   DVS_FILTER_MASK	(3 << 29)
> -#define   DVS_FILTER_MEDIUM	(0 << 29)
> -#define   DVS_FILTER_ENHANCING	(1 << 29)
> -#define   DVS_FILTER_SOFTENING	(2 << 29)
> -#define   DVS_VERTICAL_OFFSET_HALF (1 << 28) /* must be enabled below */
> -#define   DVS_VERTICAL_OFFSET_ENABLE (1 << 27)
> +#define   DVS_SCALE_ENABLE		REG_BIT(31)
> +#define   DVS_FILTER_MASK		REG_GENMASK(30, 29)
> +#define   DVS_FILTER_MEDIUM		REG_FIELD_PREP(DVS_FILTER_MASK, 0)
> +#define   DVS_FILTER_ENHANCING		REG_FIELD_PREP(DVS_FILTER_MASK, 1)
> +#define   DVS_FILTER_SOFTENING		REG_FIELD_PREP(DVS_FILTER_MASK, 2)
> +#define   DVS_VERTICAL_OFFSET_HALF	REG_BIT(28) /* must be enabled below */
> +#define   DVS_VERTICAL_OFFSET_ENABLE	REG_BIT(27)
> +#define   DVS_SRC_WIDTH_MASK		REG_GENMASK(26, 16)
> +#define   DVS_SRC_WIDTH(w)		REG_FIELD_PREP(DVS_SRC_WIDTH_MASK, (w))
> +#define   DVS_SRC_HEIGHT_MASK		REG_GENMASK(10, 0)
> +#define   DVS_SRC_HEIGHT(h)		REG_FIELD_PREP(DVS_SRC_HEIGHT_MASK, (h))
>  #define _DVSAGAMC_ILK		0x72300 /* ilk/snb */
>  #define _DVSAGAMCMAX_ILK	0x72340 /* ilk/snb */
>  


  reply	other threads:[~2022-01-14 16:39 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-01 15:25 [Intel-gfx] [PATCH 00/14] drm/i915: Plane register cleanup Ville Syrjala
2021-12-01 15:25 ` [Intel-gfx] [PATCH 01/14] drm/i915: Get rid of the 64bit PLANE_CC_VAL mmio Ville Syrjala
2021-12-01 17:13   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 02/14] drm/i915: Rename plane YUV order bits Ville Syrjala
2021-12-01 17:14   ` Souza, Jose
2021-12-02 11:53     ` Ville Syrjälä
2021-12-06 13:13   ` kernel test robot
2021-12-06 13:13     ` kernel test robot
2021-12-01 15:25 ` [Intel-gfx] [PATCH 03/14] drm/i915: Get rid of the "sizes are 0 based" stuff Ville Syrjala
2021-12-01 17:18   ` Souza, Jose
2021-12-02 11:56     ` Ville Syrjälä
2021-12-03 13:40       ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 04/14] drm/i915: Sipmplify PLANE_STRIDE masking Ville Syrjala
2022-01-12 19:50   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 05/14] drm/i915: Rename PLANE_CUS_CTL Y plane bits Ville Syrjala
2021-12-01 17:17   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 06/14] drm/i915: Use REG_BIT() & co. for universal " Ville Syrjala
2021-12-01 17:26   ` Souza, Jose
2021-12-02 11:57     ` Ville Syrjälä
2022-01-12 19:52       ` Souza, Jose
2021-12-06 15:57   ` kernel test robot
2021-12-06 15:57     ` kernel test robot
2021-12-01 15:25 ` [Intel-gfx] [PATCH 07/14] drm/i915: Clean up pre-skl primary plane registers Ville Syrjala
2021-12-06 19:22   ` kernel test robot
2021-12-06 19:22     ` kernel test robot
2022-01-12 20:12   ` Souza, Jose
2022-01-18  0:55     ` Ville Syrjälä
2022-01-18 13:40       ` Souza, Jose
2022-01-18 16:27         ` Ville Syrjälä
2021-12-01 15:25 ` [Intel-gfx] [PATCH 08/14] drm/i915: Clean up ivb+ sprite " Ville Syrjala
2022-01-14 16:26   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 09/14] drm/i915: Clean up vlv/chv " Ville Syrjala
2022-01-14 16:34   ` Souza, Jose
2022-01-18  1:11     ` Ville Syrjälä
2021-12-01 15:25 ` [Intel-gfx] [PATCH 10/14] drm/i915: Clean up g4x+ " Ville Syrjala
2022-01-14 16:38   ` Souza, Jose [this message]
2021-12-01 15:25 ` [Intel-gfx] [PATCH 11/14] drm/i915: Clean up cursor registers Ville Syrjala
2022-01-14 16:45   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 12/14] drm/i915: Extract skl_plane_aux_dist() Ville Syrjala
2021-12-01 17:28   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 13/14] drm/i915: Declutter color key register stuff Ville Syrjala
2021-12-01 17:31   ` Souza, Jose
2021-12-01 15:25 ` [Intel-gfx] [PATCH 14/14] drm/i915: Nuke pointless middle men for skl+ plane programming Ville Syrjala
2021-12-01 17:32   ` Souza, Jose
2021-12-01 18:47 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Plane register cleanup Patchwork
2021-12-01 18:48 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-12-01 19:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-12-02  1:57 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d09515b10ede66a1b1519c171082f75e2e4e0370.camel@intel.com \
    --to=jose.souza@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.