From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 14/15] drm/i915: Use REG_BIT() & co. for pipe scaler registers
Date: Wed, 19 Apr 2023 18:48:30 +0300 [thread overview]
Message-ID: <87edofyisx.fsf@intel.com> (raw)
In-Reply-To: <20230418175528.13117-15-ville.syrjala@linux.intel.com>
On Tue, 18 Apr 2023, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Pimp the skl+ scaler register bits with REG_BIT()/etc.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 98 ++++++++++++++++++---------------
> 1 file changed, 53 insertions(+), 45 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 68581864fb44..9a6343d2e0fa 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -4049,52 +4049,58 @@
> #define _PS_1B_CTRL 0x68980
> #define _PS_2B_CTRL 0x68A80
> #define _PS_1C_CTRL 0x69180
> -#define PS_SCALER_EN (1 << 31)
> -#define SKL_PS_SCALER_MODE_MASK (3 << 28)
> -#define SKL_PS_SCALER_MODE_DYN (0 << 28)
> -#define SKL_PS_SCALER_MODE_HQ (1 << 28)
> -#define SKL_PS_SCALER_MODE_NV12 (2 << 28)
> -#define PS_SCALER_MODE_PLANAR (1 << 29)
> -#define PS_SCALER_MODE_NORMAL (0 << 29)
> -#define PS_BINDING_MASK (7 << 25)
> -#define PS_BINDING_PIPE (0 << 25)
> -#define PS_BINDING_PLANE(plane_id) (((plane_id) + 1) << 25)
> -#define PS_FILTER_MASK (3 << 23)
> -#define PS_FILTER_MEDIUM (0 << 23)
> -#define PS_FILTER_PROGRAMMED (1 << 23)
> -#define PS_FILTER_EDGE_ENHANCE (2 << 23)
> -#define PS_FILTER_BILINEAR (3 << 23)
> -#define PS_VERT3TAP (1 << 21)
> -#define PS_VERT_INT_INVERT_FIELD1 (0 << 20)
> -#define PS_VERT_INT_INVERT_FIELD0 (1 << 20)
> -#define PS_PWRUP_PROGRESS (1 << 17)
> -#define PS_V_FILTER_BYPASS (1 << 8)
> -#define PS_VADAPT_EN (1 << 7)
> -#define PS_VADAPT_MODE_MASK (3 << 5)
> -#define PS_VADAPT_MODE_LEAST_ADAPT (0 << 5)
> -#define PS_VADAPT_MODE_MOD_ADAPT (1 << 5)
> -#define PS_VADAPT_MODE_MOST_ADAPT (3 << 5)
> -#define PS_BINDING_Y_MASK (7 << 5)
> -#define PS_BINDING_Y_PLANE(plane_id) (((plane_id) + 1) << 5)
> -#define PS_Y_VERT_FILTER_SELECT(set) ((set) << 4)
> -#define PS_Y_HORZ_FILTER_SELECT(set) ((set) << 3)
> -#define PS_UV_VERT_FILTER_SELECT(set) ((set) << 2)
> -#define PS_UV_HORZ_FILTER_SELECT(set) ((set) << 1)
> +#define PS_SCALER_EN REG_BIT(31)
> +#define SKL_PS_SCALER_MODE_MASK REG_GENMASK(29, 28) /* skl/bxt */
> +#define SKL_PS_SCALER_MODE_DYN REG_FIELD_PREP(SKL_PS_SCALER_MODE_MASK, 0)
> +#define SKL_PS_SCALER_MODE_HQ REG_FIELD_PREP(SKL_PS_SCALER_MODE_MASK, 1)
> +#define SKL_PS_SCALER_MODE_NV12 REG_FIELD_PREP(SKL_PS_SCALER_MODE_MASK, 2)
> +#define PS_SCALER_MODE_MASK REG_BIT(29) /* glk-tgl */
> +#define PS_SCALER_MODE_NORMAL REG_FIELD_PREP(PS_SCALER_MODE_MASK, 0)
> +#define PS_SCALER_MODE_PLANAR REG_FIELD_PREP(PS_SCALER_MODE_MASK, 1)
> +#define PS_BINDING_MASK REG_GENMASK(27, 25)
> +#define PS_BINDING_PIPE REG_FIELD_PREP(PS_BINDING_MASK, 0)
> +#define PS_BINDING_PLANE(plane_id) REG_FIELD_PREP(PS_BINDING_MASK, (plane_id) + 1)
> +#define PS_FILTER_MASK REG_GENMASK(24, 23)
> +#define PS_FILTER_MEDIUM REG_FIELD_PREP(PS_FILTER_MASK, 0)
> +#define PS_FILTER_PROGRAMMED REG_FIELD_PREP(PS_FILTER_MASK, 1)
> +#define PS_FILTER_EDGE_ENHANCE REG_FIELD_PREP(PS_FILTER_MASK, 2)
> +#define PS_FILTER_BILINEAR REG_FIELD_PREP(PS_FILTER_MASK, 3)
> +#define PS_VERT3TAP REG_BIT(21) /* skl/bxt */
> +#define PS_VERT_INT_INVERT_FIELD REG_BIT(20)
> +#define PS_PWRUP_PROGRESS REG_BIT(17)
> +#define PS_V_FILTER_BYPASS REG_BIT(8)
> +#define PS_VADAPT_EN REG_BIT(7) /* skl/bxt */
> +#define PS_VADAPT_MODE_MASK REG_GENMASK(6, 5) /* skl/bxt */
> +#define PS_VADAPT_MODE_LEAST_ADAPT REG_FIELD_PREP(PS_VADAPT_MODE_MASK, 0)
> +#define PS_VADAPT_MODE_MOD_ADAPT REG_FIELD_PREP(PS_VADAPT_MODE_MASK, 1)
> +#define PS_VADAPT_MODE_MOST_ADAPT REG_FIELD_PREP(PS_VADAPT_MODE_MASK, 3)
> +#define PS_BINDING_Y_MASK REG_GENMASK(7, 5) /* icl-tgl */
> +#define PS_BINDING_Y_PLANE(plane_id) REG_FIELD_PREP(PS_BINDING_Y_MASK, (plane_id) + 1)
> +#define PS_Y_VERT_FILTER_SELECT_MASK REG_BIT(4) /* glk+ */
> +#define PS_Y_VERT_FILTER_SELECT(set) REG_FIELD_PREP(PS_Y_VERT_FILTER_SELECT_MASK, (set))
> +#define PS_Y_HORZ_FILTER_SELECT_MASK REG_BIT(3) /* glk+ */
> +#define PS_Y_HORZ_FILTER_SELECT(set) REG_FIELD_PREP(PS_Y_HORZ_FILTER_SELECT_MASK, (set))
> +#define PS_UV_VERT_FILTER_SELECT_MASK REG_BIT(2) /* glk+ */
> +#define PS_UV_VERT_FILTER_SELECT(set) REG_FIELD_PREP(PS_UV_VERT_FILTER_SELECT_MASK, (set))
> +#define PS_UV_HORZ_FILTER_SELECT_MASK REG_BIT(1) /* glk+ */
> +#define PS_UV_HORZ_FILTER_SELECT(set) REG_FIELD_PREP(PS_UV_HORZ_FILTER_SELECT_MASK, (set))
>
> #define _PS_PWR_GATE_1A 0x68160
> #define _PS_PWR_GATE_2A 0x68260
> #define _PS_PWR_GATE_1B 0x68960
> #define _PS_PWR_GATE_2B 0x68A60
> #define _PS_PWR_GATE_1C 0x69160
> -#define PS_PWR_GATE_DIS_OVERRIDE (1 << 31)
> -#define PS_PWR_GATE_SETTLING_TIME_32 (0 << 3)
> -#define PS_PWR_GATE_SETTLING_TIME_64 (1 << 3)
> -#define PS_PWR_GATE_SETTLING_TIME_96 (2 << 3)
> -#define PS_PWR_GATE_SETTLING_TIME_128 (3 << 3)
> -#define PS_PWR_GATE_SLPEN_8 0
> -#define PS_PWR_GATE_SLPEN_16 1
> -#define PS_PWR_GATE_SLPEN_24 2
> -#define PS_PWR_GATE_SLPEN_32 3
> +#define PS_PWR_GATE_DIS_OVERRIDE REG_BIT(31)
> +#define PS_PWR_GATE_SETTLING_TIME_MASK REG_GENMASK(4, 3)
> +#define PS_PWR_GATE_SETTLING_TIME_32 REG_FIELD_PREP(PS_PWR_GATE_SETTLING_TIME_MASK, 0)
> +#define PS_PWR_GATE_SETTLING_TIME_64 REG_FIELD_PREP(PS_PWR_GATE_SETTLING_TIME_MASK, 1)
> +#define PS_PWR_GATE_SETTLING_TIME_96 REG_FIELD_PREP(PS_PWR_GATE_SETTLING_TIME_MASK, 2)
> +#define PS_PWR_GATE_SETTLING_TIME_128 REG_FIELD_PREP(PS_PWR_GATE_SETTLING_TIME_MASK, 3)
> +#define PS_PWR_GATE_SLPEN_MASK REG_GENMASK(1, 0)
> +#define PS_PWR_GATE_SLPEN_8 REG_FIELD_PREP(PS_PWR_GATE_SLPEN_MASK, 0)
> +#define PS_PWR_GATE_SLPEN_16 REG_FIELD_PREP(PS_PWR_GATE_SLPEN_MASK, 1)
> +#define PS_PWR_GATE_SLPEN_24 REG_FIELD_PREP(PS_PWR_GATE_SLPEN_MASK, 2)
> +#define PS_PWR_GATE_SLPEN_32 REG_FIELD_PREP(PS_PWR_GATE_SLPEN_MASK, 3)
>
> #define _PS_WIN_POS_1A 0x68170
> #define _PS_WIN_POS_2A 0x68270
> @@ -4133,10 +4139,12 @@
> #define _PS_VPHASE_1B 0x68988
> #define _PS_VPHASE_2B 0x68A88
> #define _PS_VPHASE_1C 0x69188
> -#define PS_Y_PHASE(x) ((x) << 16)
> -#define PS_UV_RGB_PHASE(x) ((x) << 0)
> -#define PS_PHASE_MASK (0x7fff << 1) /* u2.13 */
> -#define PS_PHASE_TRIP (1 << 0)
> +#define PS_Y_PHASE_MASK REG_GENMASK(31, 16)
> +#define PS_Y_PHASE(x) REG_FIELD_PREP(PS_Y_PHASE_MASK, (x))
> +#define PS_UV_RGB_PHASE_MASK REG_GENMASK(15, 0)
> +#define PS_UV_RGB_PHASE(x) REG_FIELD_PREP(PS_UV_RGB_PHASE_MASK, (x))
> +#define PS_PHASE_MASK (0x7fff << 1) /* u2.13 */
> +#define PS_PHASE_TRIP (1 << 0)
>
> #define _PS_HPHASE_1A 0x68194
> #define _PS_HPHASE_2A 0x68294
> @@ -4154,7 +4162,7 @@
> #define _PS_COEF_SET0_INDEX_2A 0x68298
> #define _PS_COEF_SET0_INDEX_1B 0x68998
> #define _PS_COEF_SET0_INDEX_2B 0x68A98
> -#define PS_COEF_INDEX_AUTO_INC (1 << 10)
> +#define PS_COEF_INDEX_AUTO_INC REG_BIT(10)
>
> #define _PS_COEF_SET0_DATA_1A 0x6819C
> #define _PS_COEF_SET0_DATA_2A 0x6829C
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2023-04-19 15:48 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-18 17:55 [Intel-gfx] [PATCH 00/15] drm/i915: Scaler/pfit stuff Ville Syrjala
2023-04-18 17:55 ` [Intel-gfx] [PATCH 01/15] drm/i915: Check pipe source size when using skl+ scalers Ville Syrjala
2023-04-18 17:55 ` Ville Syrjala
2023-04-19 15:11 ` [Intel-gfx] " Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 02/15] drm/i915: Relocate VBLANK_EVASION_TIME_US Ville Syrjala
2023-04-19 15:13 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 03/15] drm/i915: Relocate intel_atomic_setup_scalers() Ville Syrjala
2023-04-19 15:16 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 04/15] drm/i915: Relocate skl_get_pfit_config() Ville Syrjala
2023-04-19 15:17 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 05/15] drm/i915: Use REG_BIT() & co for the pre-ilk pfit registers Ville Syrjala
2023-04-19 15:28 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 06/15] drm/i915: Namespace pfit registers properly Ville Syrjala
2023-04-19 15:28 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 07/15] drm/i915: Use REG_BIT() & co. for ilk+ pfit registers Ville Syrjala
2023-04-19 15:29 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 08/15] drm/i915: Drop a useless forward declararion Ville Syrjala
2023-04-19 15:30 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 09/15] drm/i915: Define bitmasks for ilk pfit window pos/size Ville Syrjala
2023-04-19 15:34 ` Jani Nikula
2023-04-20 12:09 ` Ville Syrjälä
2023-04-25 10:49 ` Ville Syrjälä
2023-04-18 17:55 ` [Intel-gfx] [PATCH 10/15] drm/i915: Remove dead scaler register defines Ville Syrjala
2023-04-19 15:35 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 11/15] drm/i915: Rename skl+ scaler binding bits Ville Syrjala
2023-04-18 19:36 ` [Intel-gfx] [PATCH v2 " Ville Syrjala
2023-04-19 15:38 ` Jani Nikula
2023-04-18 22:06 ` [Intel-gfx] [PATCH " kernel test robot
2023-04-19 15:38 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 12/15] drm/i915: s/PS_COEE_INDEX_AUTO_INC/PS_COEF_INDEX_AUTO_INC/ Ville Syrjala
2023-04-19 15:38 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 13/15] drm/i915: Define bitmasks for sik+ scaler window pos/size Ville Syrjala
2023-04-19 15:41 ` Jani Nikula
2023-04-18 17:55 ` [Intel-gfx] [PATCH 14/15] drm/i915: Use REG_BIT() & co. for pipe scaler registers Ville Syrjala
2023-04-19 15:48 ` Jani Nikula [this message]
2023-04-18 17:55 ` [Intel-gfx] [PATCH 15/15] drm/i915: Define more PS_CTRL bits Ville Syrjala
2023-04-18 18:31 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Scaler/pfit stuff Patchwork
2023-04-18 22:20 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Scaler/pfit stuff (rev2) Patchwork
2023-04-18 22:20 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-04-18 22:30 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-04-19 4:12 ` [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=87edofyisx.fsf@intel.com \
--to=jani.nikula@linux.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.