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 */
>
next prev parent 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.