diff mbox series

[04/56] drm/i915: Convert INTEL_GEN() to DISPLAY_VER() as appropriate in intel_pm.c

Message ID 20210311223632.3191939-5-matthew.d.roper@intel.com (mailing list archive)
State New, archived
Headers show
Series Introduce Alder Lake-P | expand

Commit Message

Matt Roper March 11, 2021, 10:35 p.m. UTC
Although most of the code in this file is display-related (watermarks),
there's some functions that are not (e.g., clock gating).  Thus we need
to do the conversions to DISPLAY_VER() manually here rather than using
Coccinelle.

In the near-future we'll probably want to think about moving watermark
logic out of intel_pm.c and into watermark-specific files under the
display/ directory.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 132 ++++++++++++++++----------------
 1 file changed, 66 insertions(+), 66 deletions(-)

Comments

Srivatsa, Anusha March 12, 2021, 8:42 p.m. UTC | #1
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Matt
> Roper
> Sent: Thursday, March 11, 2021 2:36 PM
> To: intel-gfx@lists.freedesktop.org
> Subject: [Intel-gfx] [PATCH 04/56] drm/i915: Convert INTEL_GEN() to
> DISPLAY_VER() as appropriate in intel_pm.c
> 
> Although most of the code in this file is display-related (watermarks), there's
> some functions that are not (e.g., clock gating).  Thus we need to do the
> conversions to DISPLAY_VER() manually here rather than using Coccinelle.
> 
> In the near-future we'll probably want to think about moving watermark
> logic out of intel_pm.c and into watermark-specific files under the display/
> directory.
> 
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>

Any reason Patch 4 and Patch 5 are not one single patch? It looks like both replace INTEL_GEN() with DISPLAY_VER() where necessary... 

Anusha 
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 132 ++++++++++++++++----------------
>  1 file changed, 66 insertions(+), 66 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c
> b/drivers/gpu/drm/i915/intel_pm.c index 854ffecd98d9..2616b1845719
> 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -2339,7 +2339,7 @@ static void i9xx_update_wm(struct intel_crtc
> *unused_crtc)
> 
>  	if (IS_I945GM(dev_priv))
>  		wm_info = &i945_wm_info;
> -	else if (!IS_GEN(dev_priv, 2))
> +	else if (DISPLAY_VER(dev_priv) != 2)
>  		wm_info = &i915_wm_info;
>  	else
>  		wm_info = &i830_a_wm_info;
> @@ -2353,7 +2353,7 @@ static void i9xx_update_wm(struct intel_crtc
> *unused_crtc)
>  			crtc->base.primary->state->fb;
>  		int cpp;
> 
> -		if (IS_GEN(dev_priv, 2))
> +		if (DISPLAY_VER(dev_priv) == 2)
>  			cpp = 4;
>  		else
>  			cpp = fb->format->cpp[0];
> @@ -2368,7 +2368,7 @@ static void i9xx_update_wm(struct intel_crtc
> *unused_crtc)
>  			planea_wm = wm_info->max_wm;
>  	}
> 
> -	if (IS_GEN(dev_priv, 2))
> +	if (DISPLAY_VER(dev_priv) == 2)
>  		wm_info = &i830_bc_wm_info;
> 
>  	fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B); @@ -
> 2380,7 +2380,7 @@ static void i9xx_update_wm(struct intel_crtc
> *unused_crtc)
>  			crtc->base.primary->state->fb;
>  		int cpp;
> 
> -		if (IS_GEN(dev_priv, 2))
> +		if (DISPLAY_VER(dev_priv) == 2)
>  			cpp = 4;
>  		else
>  			cpp = fb->format->cpp[0];
> @@ -2652,9 +2652,9 @@ static u32 ilk_compute_fbc_wm(const struct
> intel_crtc_state *crtc_state,  static unsigned int  ilk_display_fifo_size(const
> struct drm_i915_private *dev_priv)  {
> -	if (INTEL_GEN(dev_priv) >= 8)
> +	if (DISPLAY_VER(dev_priv) >= 8)
>  		return 3072;
> -	else if (INTEL_GEN(dev_priv) >= 7)
> +	else if (DISPLAY_VER(dev_priv) >= 7)
>  		return 768;
>  	else
>  		return 512;
> @@ -2664,10 +2664,10 @@ static unsigned int
> ilk_plane_wm_reg_max(const struct drm_i915_private *dev_priv,
>  		     int level, bool is_sprite)
>  {
> -	if (INTEL_GEN(dev_priv) >= 8)
> +	if (DISPLAY_VER(dev_priv) >= 8)
>  		/* BDW primary/sprite plane watermarks */
>  		return level == 0 ? 255 : 2047;
> -	else if (INTEL_GEN(dev_priv) >= 7)
> +	else if (DISPLAY_VER(dev_priv) >= 7)
>  		/* IVB/HSW primary/sprite plane watermarks */
>  		return level == 0 ? 127 : 1023;
>  	else if (!is_sprite)
> @@ -2681,7 +2681,7 @@ ilk_plane_wm_reg_max(const struct
> drm_i915_private *dev_priv,  static unsigned int
> ilk_cursor_wm_reg_max(const struct drm_i915_private *dev_priv, int level)  {
> -	if (INTEL_GEN(dev_priv) >= 7)
> +	if (DISPLAY_VER(dev_priv) >= 7)
>  		return level == 0 ? 63 : 255;
>  	else
>  		return level == 0 ? 31 : 63;
> @@ -2689,7 +2689,7 @@ ilk_cursor_wm_reg_max(const struct
> drm_i915_private *dev_priv, int level)
> 
>  static unsigned int ilk_fbc_wm_reg_max(const struct drm_i915_private
> *dev_priv)  {
> -	if (INTEL_GEN(dev_priv) >= 8)
> +	if (DISPLAY_VER(dev_priv) >= 8)
>  		return 31;
>  	else
>  		return 15;
> @@ -2717,7 +2717,7 @@ static unsigned int ilk_plane_wm_max(const struct
> drm_i915_private *dev_priv,
>  		 * FIFO size is only half of the self
>  		 * refresh FIFO size on ILK/SNB.
>  		 */
> -		if (INTEL_GEN(dev_priv) <= 6)
> +		if (DISPLAY_VER(dev_priv) <= 6)
>  			fifo_size /= 2;
>  	}
> 
> @@ -2852,7 +2852,7 @@ static void intel_read_wm_latency(struct
> drm_i915_private *dev_priv,  {
>  	struct intel_uncore *uncore = &dev_priv->uncore;
> 
> -	if (INTEL_GEN(dev_priv) >= 9) {
> +	if (DISPLAY_VER(dev_priv) >= 9) {
>  		u32 val;
>  		int ret, i;
>  		int level, max_level = ilk_wm_max_level(dev_priv); @@ -
> 2944,14 +2944,14 @@ static void intel_read_wm_latency(struct
> drm_i915_private *dev_priv,
>  		wm[2] = (sskpd >> 12) & 0xFF;
>  		wm[3] = (sskpd >> 20) & 0x1FF;
>  		wm[4] = (sskpd >> 32) & 0x1FF;
> -	} else if (INTEL_GEN(dev_priv) >= 6) {
> +	} else if (DISPLAY_VER(dev_priv) >= 6) {
>  		u32 sskpd = intel_uncore_read(uncore, MCH_SSKPD);
> 
>  		wm[0] = (sskpd >> SSKPD_WM0_SHIFT) & SSKPD_WM_MASK;
>  		wm[1] = (sskpd >> SSKPD_WM1_SHIFT) & SSKPD_WM_MASK;
>  		wm[2] = (sskpd >> SSKPD_WM2_SHIFT) & SSKPD_WM_MASK;
>  		wm[3] = (sskpd >> SSKPD_WM3_SHIFT) & SSKPD_WM_MASK;
> -	} else if (INTEL_GEN(dev_priv) >= 5) {
> +	} else if (DISPLAY_VER(dev_priv) >= 5) {
>  		u32 mltr = intel_uncore_read(uncore, MLTR_ILK);
> 
>  		/* ILK primary LP0 latency is 700 ns */ @@ -2967,7 +2967,7
> @@ static void intel_fixup_spr_wm_latency(struct drm_i915_private
> *dev_priv,
>  				       u16 wm[5])
>  {
>  	/* ILK sprite LP0 latency is 1300 ns */
> -	if (IS_GEN(dev_priv, 5))
> +	if (DISPLAY_VER(dev_priv) == 5)
>  		wm[0] = 13;
>  }
> 
> @@ -2975,18 +2975,18 @@ static void intel_fixup_cur_wm_latency(struct
> drm_i915_private *dev_priv,
>  				       u16 wm[5])
>  {
>  	/* ILK cursor LP0 latency is 1300 ns */
> -	if (IS_GEN(dev_priv, 5))
> +	if (DISPLAY_VER(dev_priv) == 5)
>  		wm[0] = 13;
>  }
> 
>  int ilk_wm_max_level(const struct drm_i915_private *dev_priv)  {
>  	/* how many WM levels are we expecting */
> -	if (INTEL_GEN(dev_priv) >= 9)
> +	if (DISPLAY_VER(dev_priv) >= 9)
>  		return 7;
>  	else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
>  		return 4;
> -	else if (INTEL_GEN(dev_priv) >= 6)
> +	else if (DISPLAY_VER(dev_priv) >= 6)
>  		return 3;
>  	else
>  		return 2;
> @@ -3012,7 +3012,7 @@ static void intel_print_wm_latency(struct
> drm_i915_private *dev_priv,
>  		 * - latencies are in us on gen9.
>  		 * - before then, WM1+ latency values are in 0.5us units
>  		 */
> -		if (INTEL_GEN(dev_priv) >= 9)
> +		if (DISPLAY_VER(dev_priv) >= 9)
>  			latency *= 10;
>  		else if (level > 0)
>  			latency *= 5;
> @@ -3105,7 +3105,7 @@ static void ilk_setup_wm_latency(struct
> drm_i915_private *dev_priv)
>  	intel_print_wm_latency(dev_priv, "Sprite", dev_priv-
> >wm.spr_latency);
>  	intel_print_wm_latency(dev_priv, "Cursor", dev_priv-
> >wm.cur_latency);
> 
> -	if (IS_GEN(dev_priv, 6)) {
> +	if (DISPLAY_VER(dev_priv) == 6) {
>  		snb_wm_latency_quirk(dev_priv);
>  		snb_wm_lp3_irq_quirk(dev_priv);
>  	}
> @@ -3176,7 +3176,7 @@ static int ilk_compute_pipe_wm(struct
> intel_crtc_state *crtc_state)
>  	usable_level = max_level;
> 
>  	/* ILK/SNB: LP2+ watermarks only w/o sprites */
> -	if (INTEL_GEN(dev_priv) <= 6 && pipe_wm->sprites_enabled)
> +	if (DISPLAY_VER(dev_priv) <= 6 && pipe_wm->sprites_enabled)
>  		usable_level = 1;
> 
>  	/* ILK/SNB/IVB: LP1+ watermarks only w/o scaling */ @@ -3318,12
> +3318,12 @@ static void ilk_wm_merge(struct drm_i915_private *dev_priv,
>  	int last_enabled_level = max_level;
> 
>  	/* ILK/SNB/IVB: LP1+ watermarks only w/ single pipe */
> -	if ((INTEL_GEN(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
> +	if ((DISPLAY_VER(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
>  	    config->num_pipes_active > 1)
>  		last_enabled_level = 0;
> 
>  	/* ILK: FBC WM must be disabled always */
> -	merged->fbc_wm_enabled = INTEL_GEN(dev_priv) >= 6;
> +	merged->fbc_wm_enabled = DISPLAY_VER(dev_priv) >= 6;
> 
>  	/* merge each WM1+ level */
>  	for (level = 1; level <= max_level; level++) { @@ -3354,7 +3354,7 @@
> static void ilk_wm_merge(struct drm_i915_private *dev_priv,
>  	 * What we should check here is whether FBC can be
>  	 * enabled sometime later.
>  	 */
> -	if (IS_GEN(dev_priv, 5) && !merged->fbc_wm_enabled &&
> +	if (DISPLAY_VER(dev_priv) == 5 && !merged->fbc_wm_enabled &&
>  	    intel_fbc_is_active(dev_priv)) {
>  		for (level = 2; level <= max_level; level++) {
>  			struct intel_wm_level *wm = &merged->wm[level];
> @@ -3411,7 +3411,7 @@ static void ilk_compute_wm_results(struct
> drm_i915_private *dev_priv,
>  		if (r->enable)
>  			results->wm_lp[wm_lp - 1] |= WM1_LP_SR_EN;
> 
> -		if (INTEL_GEN(dev_priv) >= 8)
> +		if (DISPLAY_VER(dev_priv) >= 8)
>  			results->wm_lp[wm_lp - 1] |=
>  				r->fbc_val << WM1_LP_FBC_SHIFT_BDW;
>  		else
> @@ -3422,7 +3422,7 @@ static void ilk_compute_wm_results(struct
> drm_i915_private *dev_priv,
>  		 * Always set WM1S_LP_EN when spr_val != 0, even if the
>  		 * level is disabled. Doing otherwise could cause underruns.
>  		 */
> -		if (INTEL_GEN(dev_priv) <= 6 && r->spr_val) {
> +		if (DISPLAY_VER(dev_priv) <= 6 && r->spr_val) {
>  			drm_WARN_ON(&dev_priv->drm, wm_lp != 1);
>  			results->wm_lp_spr[wm_lp - 1] = WM1S_LP_EN | r-
> >spr_val;
>  		} else
> @@ -3612,7 +3612,7 @@ static void ilk_write_wm_values(struct
> drm_i915_private *dev_priv,
>  	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
>  		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK,
> results->wm_lp_spr[0]);
> 
> -	if (INTEL_GEN(dev_priv) >= 7) {
> +	if (DISPLAY_VER(dev_priv) >= 7) {
>  		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] !=
> results->wm_lp_spr[1])
>  			intel_uncore_write(&dev_priv->uncore,
> WM2S_LP_IVB, results->wm_lp_spr[1]);
>  		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] !=
> results->wm_lp_spr[2]) @@ -3660,14 +3660,14 @@ static bool
> skl_needs_memory_bw_wa(struct drm_i915_private *dev_priv)  static bool
> intel_has_sagv(struct drm_i915_private *dev_priv)  {
> -	return (IS_GEN9_BC(dev_priv) || INTEL_GEN(dev_priv) >= 10) &&
> +	return (IS_GEN9_BC(dev_priv) || DISPLAY_VER(dev_priv) >= 10) &&
>  		dev_priv->sagv_status != I915_SAGV_NOT_CONTROLLED;  }
> 
>  static void
>  skl_setup_sagv_block_time(struct drm_i915_private *dev_priv)  {
> -	if (INTEL_GEN(dev_priv) >= 12) {
> +	if (DISPLAY_VER(dev_priv) >= 12) {
>  		u32 val = 0;
>  		int ret;
> 
> @@ -3680,17 +3680,17 @@ skl_setup_sagv_block_time(struct
> drm_i915_private *dev_priv)
>  		}
> 
>  		drm_dbg(&dev_priv->drm, "Couldn't read SAGV block
> time!\n");
> -	} else if (IS_GEN(dev_priv, 11)) {
> +	} else if (DISPLAY_VER(dev_priv) == 11) {
>  		dev_priv->sagv_block_time_us = 10;
>  		return;
> -	} else if (IS_GEN(dev_priv, 10)) {
> +	} else if (DISPLAY_VER(dev_priv) == 10) {
>  		dev_priv->sagv_block_time_us = 20;
>  		return;
> -	} else if (IS_GEN(dev_priv, 9)) {
> +	} else if (DISPLAY_VER(dev_priv) == 9) {
>  		dev_priv->sagv_block_time_us = 30;
>  		return;
>  	} else {
> -		MISSING_CASE(INTEL_GEN(dev_priv));
> +		MISSING_CASE(DISPLAY_VER(dev_priv));
>  	}
> 
>  	/* Default to an unusable block time */ @@ -3797,7 +3797,7 @@
> void intel_sagv_pre_plane_update(struct intel_atomic_state *state)
>  	if (!new_bw_state)
>  		return;
> 
> -	if (INTEL_GEN(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv,
> new_bw_state)) {
> +	if (DISPLAY_VER(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv,
> +new_bw_state)) {
>  		intel_disable_sagv(dev_priv);
>  		return;
>  	}
> @@ -3848,7 +3848,7 @@ void intel_sagv_post_plane_update(struct
> intel_atomic_state *state)
>  	if (!new_bw_state)
>  		return;
> 
> -	if (INTEL_GEN(dev_priv) < 11 && intel_can_enable_sagv(dev_priv,
> new_bw_state)) {
> +	if (DISPLAY_VER(dev_priv) < 11 && intel_can_enable_sagv(dev_priv,
> +new_bw_state)) {
>  		intel_enable_sagv(dev_priv);
>  		return;
>  	}
> @@ -3936,7 +3936,7 @@ static bool intel_crtc_can_enable_sagv(const struct
> intel_crtc_state *crtc_state
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> 
> -	if (INTEL_GEN(dev_priv) >= 12)
> +	if (DISPLAY_VER(dev_priv) >= 12)
>  		return tgl_crtc_can_enable_sagv(crtc_state);
>  	else
>  		return skl_crtc_can_enable_sagv(crtc_state);
> @@ -3945,7 +3945,7 @@ static bool intel_crtc_can_enable_sagv(const struct
> intel_crtc_state *crtc_state  bool intel_can_enable_sagv(struct
> drm_i915_private *dev_priv,
>  			   const struct intel_bw_state *bw_state)  {
> -	if (INTEL_GEN(dev_priv) < 11 &&
> +	if (DISPLAY_VER(dev_priv) < 11 &&
>  	    bw_state->active_pipes && !is_power_of_2(bw_state-
> >active_pipes))
>  		return false;
> 
> @@ -3998,7 +3998,7 @@ static int intel_compute_sagv_mask(struct
> intel_atomic_state *state)
>  		 * latter from the plane commit hooks (especially in the
> legacy
>  		 * cursor case)
>  		 */
> -		pipe_wm->use_sagv_wm = INTEL_GEN(dev_priv) >= 12 &&
> +		pipe_wm->use_sagv_wm = DISPLAY_VER(dev_priv) >= 12 &&
>  				       intel_can_enable_sagv(dev_priv,
> new_bw_state);
>  	}
> 
> @@ -4022,7 +4022,7 @@ static int intel_dbuf_size(struct drm_i915_private
> *dev_priv)
> 
>  	drm_WARN_ON(&dev_priv->drm, ddb_size == 0);
> 
> -	if (INTEL_GEN(dev_priv) < 11)
> +	if (DISPLAY_VER(dev_priv) < 11)
>  		return ddb_size - 4; /* 4 blocks for bypass path allocation */
> 
>  	return ddb_size;
> @@ -4277,7 +4277,7 @@ skl_ddb_get_hw_plane_state(struct
> drm_i915_private *dev_priv,
>  					      val & PLANE_CTL_ORDER_RGBX,
>  					      val & PLANE_CTL_ALPHA_MASK);
> 
> -	if (INTEL_GEN(dev_priv) >= 11) {
> +	if (DISPLAY_VER(dev_priv) >= 11) {
>  		val = intel_uncore_read(&dev_priv->uncore,
> PLANE_BUF_CFG(pipe, plane_id));
>  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
>  	} else {
> @@ -4601,9 +4601,9 @@ static u8 skl_compute_dbuf_slices(struct intel_crtc
> *crtc, u8 active_pipes)
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	enum pipe pipe = crtc->pipe;
> 
> -	if (IS_GEN(dev_priv, 12))
> +	if (DISPLAY_VER(dev_priv) == 12)
>  		return tgl_compute_dbuf_slices(pipe, active_pipes);
> -	else if (IS_GEN(dev_priv, 11))
> +	else if (DISPLAY_VER(dev_priv) == 11)
>  		return icl_compute_dbuf_slices(pipe, active_pipes);
>  	/*
>  	 * For anything else just return one slice yet.
> @@ -4796,7 +4796,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
> *state,
>  	if (!crtc_state->hw.active)
>  		return 0;
> 
> -	if (INTEL_GEN(dev_priv) >= 11)
> +	if (DISPLAY_VER(dev_priv) >= 11)
>  		total_data_rate =
>  			icl_get_total_relative_data_rate(state, crtc);
>  	else
> @@ -4910,7 +4910,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
> *state,
> 
>  		/* Gen11+ uses a separate plane for UV watermarks */
>  		drm_WARN_ON(&dev_priv->drm,
> -			    INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
> +			    DISPLAY_VER(dev_priv) >= 11 &&
> uv_total[plane_id]);
> 
>  		/* Leave disabled planes at (0,0) */
>  		if (total[plane_id]) {
> @@ -4957,7 +4957,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
> *state,
>  			 * Wa_1408961008:icl, ehl
>  			 * Underruns with WM1+ disabled
>  			 */
> -			if (IS_GEN(dev_priv, 11) &&
> +			if (DISPLAY_VER(dev_priv) == 11 &&
>  			    level == 1 && wm->wm[0].plane_en) {
>  				wm->wm[level].plane_res_b = wm-
> >wm[0].plane_res_b;
>  				wm->wm[level].plane_res_l = wm-
> >wm[0].plane_res_l; @@ -5006,7 +5006,7 @@ skl_wm_method1(const
> struct drm_i915_private *dev_priv, u32 pixel_rate,
>  	wm_intermediate_val = latency * pixel_rate * cpp;
>  	ret = div_fixed16(wm_intermediate_val, 1000 * dbuf_block_size);
> 
> -	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> +	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>  		ret = add_fixed16_u32(ret, 1);
> 
>  	return ret;
> @@ -5086,7 +5086,7 @@ skl_compute_wm_params(const struct
> intel_crtc_state *crtc_state,
>  	wp->cpp = format->cpp[color_plane];
>  	wp->plane_pixel_rate = plane_pixel_rate;
> 
> -	if (INTEL_GEN(dev_priv) >= 11 &&
> +	if (DISPLAY_VER(dev_priv) >= 11 &&
>  	    modifier == I915_FORMAT_MOD_Yf_TILED  && wp->cpp == 1)
>  		wp->dbuf_block_size = 256;
>  	else
> @@ -5120,7 +5120,7 @@ skl_compute_wm_params(const struct
> intel_crtc_state *crtc_state,
>  					   wp->y_min_scanlines,
>  					   wp->dbuf_block_size);
> 
> -		if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> +		if (DISPLAY_VER(dev_priv) >= 10 ||
> IS_GEMINILAKE(dev_priv))
>  			interm_pbpl++;
> 
>  		wp->plane_blocks_per_line = div_fixed16(interm_pbpl, @@ -
> 5130,7 +5130,7 @@ skl_compute_wm_params(const struct intel_crtc_state
> *crtc_state,
>  					   wp->dbuf_block_size);
> 
>  		if (!wp->x_tiled ||
> -		    INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> +		    DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>  			interm_pbpl++;
> 
>  		wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
> @@ -5169,7 +5169,7 @@ skl_compute_plane_wm_params(const struct
> intel_crtc_state *crtc_state,
> 
>  static bool skl_wm_has_lines(struct drm_i915_private *dev_priv, int level)  {
> -	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> +	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>  		return true;
> 
>  	/* The number of lines are ignored for the level 0 watermark. */ @@
> -5222,7 +5222,7 @@ static void skl_compute_plane_wm(const struct
> intel_crtc_state *crtc_state,
>  		     (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) {
>  			selected_result = method2;
>  		} else if (latency >= wp->linetime_us) {
> -			if (IS_GEN(dev_priv, 9) &&
> +			if (DISPLAY_VER(dev_priv) == 9 &&
>  			    !IS_GEMINILAKE(dev_priv))
>  				selected_result = min_fixed16(method1,
> method2);
>  			else
> @@ -5263,7 +5263,7 @@ static void skl_compute_plane_wm(const struct
> intel_crtc_state *crtc_state,
>  		}
>  	}
> 
> -	if (INTEL_GEN(dev_priv) >= 11) {
> +	if (DISPLAY_VER(dev_priv) >= 11) {
>  		if (wp->y_tiled) {
>  			int extra_lines;
> 
> @@ -5302,7 +5302,7 @@ static void skl_compute_plane_wm(const struct
> intel_crtc_state *crtc_state,
>  	result->min_ddb_alloc = max(min_ddb_alloc, res_blocks) + 1;
>  	result->plane_en = true;
> 
> -	if (INTEL_GEN(dev_priv) < 12)
> +	if (DISPLAY_VER(dev_priv) < 12)
>  		result->can_sagv = latency >= dev_priv->sagv_block_time_us;
> }
> 
> @@ -5359,7 +5359,7 @@ static void skl_compute_transition_wm(struct
> drm_i915_private *dev_priv,
>  	if (IS_GEN9_BC(dev_priv) || IS_BROXTON(dev_priv))
>  		return;
> 
> -	if (INTEL_GEN(dev_priv) >= 11)
> +	if (DISPLAY_VER(dev_priv) >= 11)
>  		trans_min = 4;
>  	else
>  		trans_min = 14;
> @@ -5422,7 +5422,7 @@ static int skl_build_plane_wm_single(struct
> intel_crtc_state *crtc_state,
>  	skl_compute_transition_wm(dev_priv, &wm->trans_wm,
>  				  &wm->wm[0], &wm_params);
> 
> -	if (INTEL_GEN(dev_priv) >= 12) {
> +	if (DISPLAY_VER(dev_priv) >= 12) {
>  		tgl_compute_sagv_wm(crtc_state, &wm_params, wm);
> 
>  		skl_compute_transition_wm(dev_priv, &wm-
> >sagv.trans_wm, @@ -5544,7 +5544,7 @@ static int
> skl_build_pipe_wm(struct intel_atomic_state *state,
>  		if (plane->pipe != crtc->pipe)
>  			continue;
> 
> -		if (INTEL_GEN(dev_priv) >= 11)
> +		if (DISPLAY_VER(dev_priv) >= 11)
>  			ret = icl_build_plane_wm(crtc_state, plane_state);
>  		else
>  			ret = skl_build_plane_wm(crtc_state, plane_state);
> @@ -5605,7 +5605,7 @@ void skl_write_plane_wm(struct intel_plane
> *plane,
>  	skl_write_wm_level(dev_priv, PLANE_WM_TRANS(pipe, plane_id),
>  			   skl_plane_trans_wm(pipe_wm, plane_id));
> 
> -	if (INTEL_GEN(dev_priv) >= 11) {
> +	if (DISPLAY_VER(dev_priv) >= 11) {
>  		skl_ddb_entry_write(dev_priv,
>  				    PLANE_BUF_CFG(pipe, plane_id), ddb_y);
>  		return;
> @@ -6135,7 +6135,7 @@ static void ilk_program_watermarks(struct
> drm_i915_private *dev_priv)
>  	ilk_wm_merge(dev_priv, &config, &max, &lp_wm_1_2);
> 
>  	/* 5/6 split only in single pipe config on IVB+ */
> -	if (INTEL_GEN(dev_priv) >= 7 &&
> +	if (DISPLAY_VER(dev_priv) >= 7 &&
>  	    config.num_pipes_active == 1 && config.sprites_enabled) {
>  		ilk_compute_wm_maximums(dev_priv, 1, &config,
> INTEL_DDB_PART_5_6, &max);
>  		ilk_wm_merge(dev_priv, &config, &max, &lp_wm_5_6); @@
> -6221,7 +6221,7 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> 
>  		skl_wm_level_from_reg_val(val, &wm->trans_wm);
> 
> -		if (INTEL_GEN(dev_priv) >= 12) {
> +		if (DISPLAY_VER(dev_priv) >= 12) {
>  			wm->sagv.wm0 = wm->wm[0];
>  			wm->sagv.trans_wm = wm->trans_wm;
>  		}
> @@ -6748,7 +6748,7 @@ void ilk_wm_get_hw_state(struct
> drm_i915_private *dev_priv)
>  	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore,
> WM3_LP_ILK);
> 
>  	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore,
> WM1S_LP_ILK);
> -	if (INTEL_GEN(dev_priv) >= 7) {
> +	if (DISPLAY_VER(dev_priv) >= 7) {
>  		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore,
> WM2S_LP_IVB);
>  		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore,
> WM3S_LP_IVB);
>  	}
> @@ -7649,15 +7649,15 @@ void intel_init_pm(struct drm_i915_private
> *dev_priv)
>  		skl_setup_sagv_block_time(dev_priv);
> 
>  	/* For FIFO watermark updates */
> -	if (INTEL_GEN(dev_priv) >= 9) {
> +	if (DISPLAY_VER(dev_priv) >= 9) {
>  		skl_setup_wm_latency(dev_priv);
>  		dev_priv->display.compute_global_watermarks =
> skl_compute_wm;
>  	} else if (HAS_PCH_SPLIT(dev_priv)) {
>  		ilk_setup_wm_latency(dev_priv);
> 
> -		if ((IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[1] &&
> +		if ((DISPLAY_VER(dev_priv) == 5 && dev_priv-
> >wm.pri_latency[1] &&
>  		     dev_priv->wm.spr_latency[1] && dev_priv-
> >wm.cur_latency[1]) ||
> -		    (!IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[0] &&
> +		    (DISPLAY_VER(dev_priv) != 5 && dev_priv-
> >wm.pri_latency[0] &&
>  		     dev_priv->wm.spr_latency[0] && dev_priv-
> >wm.cur_latency[0])) {
>  			dev_priv->display.compute_pipe_wm =
> ilk_compute_pipe_wm;
>  			dev_priv->display.compute_intermediate_wm = @@
> -7700,12 +7700,12 @@ void intel_init_pm(struct drm_i915_private
> *dev_priv)
>  			dev_priv->display.update_wm = NULL;
>  		} else
>  			dev_priv->display.update_wm = pnv_update_wm;
> -	} else if (IS_GEN(dev_priv, 4)) {
> +	} else if (DISPLAY_VER(dev_priv) == 4) {
>  		dev_priv->display.update_wm = i965_update_wm;
> -	} else if (IS_GEN(dev_priv, 3)) {
> +	} else if (DISPLAY_VER(dev_priv) == 3) {
>  		dev_priv->display.update_wm = i9xx_update_wm;
>  		dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
> -	} else if (IS_GEN(dev_priv, 2)) {
> +	} else if (DISPLAY_VER(dev_priv) == 2) {
>  		if (INTEL_NUM_PIPES(dev_priv) == 1) {
>  			dev_priv->display.update_wm = i845_update_wm;
>  			dev_priv->display.get_fifo_size = i845_get_fifo_size;
> --
> 2.25.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Matt Roper March 12, 2021, 8:46 p.m. UTC | #2
On Fri, Mar 12, 2021 at 12:42:27PM -0800, Srivatsa, Anusha wrote:
> 
> 
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Matt
> > Roper
> > Sent: Thursday, March 11, 2021 2:36 PM
> > To: intel-gfx@lists.freedesktop.org
> > Subject: [Intel-gfx] [PATCH 04/56] drm/i915: Convert INTEL_GEN() to
> > DISPLAY_VER() as appropriate in intel_pm.c
> > 
> > Although most of the code in this file is display-related (watermarks), there's
> > some functions that are not (e.g., clock gating).  Thus we need to do the
> > conversions to DISPLAY_VER() manually here rather than using Coccinelle.
> > 
> > In the near-future we'll probably want to think about moving watermark
> > logic out of intel_pm.c and into watermark-specific files under the display/
> > directory.
> > 
> > Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> 
> Any reason Patch 4 and Patch 5 are not one single patch? It looks like
> both replace INTEL_GEN() with DISPLAY_VER() where necessary... 

They're manually changing different sections of the driver (parts which
can't be done in an automated manner), so I wanted to make it easier to
review the two parts separately.


Matt

> 
> Anusha 
> > ---
> >  drivers/gpu/drm/i915/intel_pm.c | 132 ++++++++++++++++----------------
> >  1 file changed, 66 insertions(+), 66 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> > b/drivers/gpu/drm/i915/intel_pm.c index 854ffecd98d9..2616b1845719
> > 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -2339,7 +2339,7 @@ static void i9xx_update_wm(struct intel_crtc
> > *unused_crtc)
> > 
> >  	if (IS_I945GM(dev_priv))
> >  		wm_info = &i945_wm_info;
> > -	else if (!IS_GEN(dev_priv, 2))
> > +	else if (DISPLAY_VER(dev_priv) != 2)
> >  		wm_info = &i915_wm_info;
> >  	else
> >  		wm_info = &i830_a_wm_info;
> > @@ -2353,7 +2353,7 @@ static void i9xx_update_wm(struct intel_crtc
> > *unused_crtc)
> >  			crtc->base.primary->state->fb;
> >  		int cpp;
> > 
> > -		if (IS_GEN(dev_priv, 2))
> > +		if (DISPLAY_VER(dev_priv) == 2)
> >  			cpp = 4;
> >  		else
> >  			cpp = fb->format->cpp[0];
> > @@ -2368,7 +2368,7 @@ static void i9xx_update_wm(struct intel_crtc
> > *unused_crtc)
> >  			planea_wm = wm_info->max_wm;
> >  	}
> > 
> > -	if (IS_GEN(dev_priv, 2))
> > +	if (DISPLAY_VER(dev_priv) == 2)
> >  		wm_info = &i830_bc_wm_info;
> > 
> >  	fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B); @@ -
> > 2380,7 +2380,7 @@ static void i9xx_update_wm(struct intel_crtc
> > *unused_crtc)
> >  			crtc->base.primary->state->fb;
> >  		int cpp;
> > 
> > -		if (IS_GEN(dev_priv, 2))
> > +		if (DISPLAY_VER(dev_priv) == 2)
> >  			cpp = 4;
> >  		else
> >  			cpp = fb->format->cpp[0];
> > @@ -2652,9 +2652,9 @@ static u32 ilk_compute_fbc_wm(const struct
> > intel_crtc_state *crtc_state,  static unsigned int  ilk_display_fifo_size(const
> > struct drm_i915_private *dev_priv)  {
> > -	if (INTEL_GEN(dev_priv) >= 8)
> > +	if (DISPLAY_VER(dev_priv) >= 8)
> >  		return 3072;
> > -	else if (INTEL_GEN(dev_priv) >= 7)
> > +	else if (DISPLAY_VER(dev_priv) >= 7)
> >  		return 768;
> >  	else
> >  		return 512;
> > @@ -2664,10 +2664,10 @@ static unsigned int
> > ilk_plane_wm_reg_max(const struct drm_i915_private *dev_priv,
> >  		     int level, bool is_sprite)
> >  {
> > -	if (INTEL_GEN(dev_priv) >= 8)
> > +	if (DISPLAY_VER(dev_priv) >= 8)
> >  		/* BDW primary/sprite plane watermarks */
> >  		return level == 0 ? 255 : 2047;
> > -	else if (INTEL_GEN(dev_priv) >= 7)
> > +	else if (DISPLAY_VER(dev_priv) >= 7)
> >  		/* IVB/HSW primary/sprite plane watermarks */
> >  		return level == 0 ? 127 : 1023;
> >  	else if (!is_sprite)
> > @@ -2681,7 +2681,7 @@ ilk_plane_wm_reg_max(const struct
> > drm_i915_private *dev_priv,  static unsigned int
> > ilk_cursor_wm_reg_max(const struct drm_i915_private *dev_priv, int level)  {
> > -	if (INTEL_GEN(dev_priv) >= 7)
> > +	if (DISPLAY_VER(dev_priv) >= 7)
> >  		return level == 0 ? 63 : 255;
> >  	else
> >  		return level == 0 ? 31 : 63;
> > @@ -2689,7 +2689,7 @@ ilk_cursor_wm_reg_max(const struct
> > drm_i915_private *dev_priv, int level)
> > 
> >  static unsigned int ilk_fbc_wm_reg_max(const struct drm_i915_private
> > *dev_priv)  {
> > -	if (INTEL_GEN(dev_priv) >= 8)
> > +	if (DISPLAY_VER(dev_priv) >= 8)
> >  		return 31;
> >  	else
> >  		return 15;
> > @@ -2717,7 +2717,7 @@ static unsigned int ilk_plane_wm_max(const struct
> > drm_i915_private *dev_priv,
> >  		 * FIFO size is only half of the self
> >  		 * refresh FIFO size on ILK/SNB.
> >  		 */
> > -		if (INTEL_GEN(dev_priv) <= 6)
> > +		if (DISPLAY_VER(dev_priv) <= 6)
> >  			fifo_size /= 2;
> >  	}
> > 
> > @@ -2852,7 +2852,7 @@ static void intel_read_wm_latency(struct
> > drm_i915_private *dev_priv,  {
> >  	struct intel_uncore *uncore = &dev_priv->uncore;
> > 
> > -	if (INTEL_GEN(dev_priv) >= 9) {
> > +	if (DISPLAY_VER(dev_priv) >= 9) {
> >  		u32 val;
> >  		int ret, i;
> >  		int level, max_level = ilk_wm_max_level(dev_priv); @@ -
> > 2944,14 +2944,14 @@ static void intel_read_wm_latency(struct
> > drm_i915_private *dev_priv,
> >  		wm[2] = (sskpd >> 12) & 0xFF;
> >  		wm[3] = (sskpd >> 20) & 0x1FF;
> >  		wm[4] = (sskpd >> 32) & 0x1FF;
> > -	} else if (INTEL_GEN(dev_priv) >= 6) {
> > +	} else if (DISPLAY_VER(dev_priv) >= 6) {
> >  		u32 sskpd = intel_uncore_read(uncore, MCH_SSKPD);
> > 
> >  		wm[0] = (sskpd >> SSKPD_WM0_SHIFT) & SSKPD_WM_MASK;
> >  		wm[1] = (sskpd >> SSKPD_WM1_SHIFT) & SSKPD_WM_MASK;
> >  		wm[2] = (sskpd >> SSKPD_WM2_SHIFT) & SSKPD_WM_MASK;
> >  		wm[3] = (sskpd >> SSKPD_WM3_SHIFT) & SSKPD_WM_MASK;
> > -	} else if (INTEL_GEN(dev_priv) >= 5) {
> > +	} else if (DISPLAY_VER(dev_priv) >= 5) {
> >  		u32 mltr = intel_uncore_read(uncore, MLTR_ILK);
> > 
> >  		/* ILK primary LP0 latency is 700 ns */ @@ -2967,7 +2967,7
> > @@ static void intel_fixup_spr_wm_latency(struct drm_i915_private
> > *dev_priv,
> >  				       u16 wm[5])
> >  {
> >  	/* ILK sprite LP0 latency is 1300 ns */
> > -	if (IS_GEN(dev_priv, 5))
> > +	if (DISPLAY_VER(dev_priv) == 5)
> >  		wm[0] = 13;
> >  }
> > 
> > @@ -2975,18 +2975,18 @@ static void intel_fixup_cur_wm_latency(struct
> > drm_i915_private *dev_priv,
> >  				       u16 wm[5])
> >  {
> >  	/* ILK cursor LP0 latency is 1300 ns */
> > -	if (IS_GEN(dev_priv, 5))
> > +	if (DISPLAY_VER(dev_priv) == 5)
> >  		wm[0] = 13;
> >  }
> > 
> >  int ilk_wm_max_level(const struct drm_i915_private *dev_priv)  {
> >  	/* how many WM levels are we expecting */
> > -	if (INTEL_GEN(dev_priv) >= 9)
> > +	if (DISPLAY_VER(dev_priv) >= 9)
> >  		return 7;
> >  	else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
> >  		return 4;
> > -	else if (INTEL_GEN(dev_priv) >= 6)
> > +	else if (DISPLAY_VER(dev_priv) >= 6)
> >  		return 3;
> >  	else
> >  		return 2;
> > @@ -3012,7 +3012,7 @@ static void intel_print_wm_latency(struct
> > drm_i915_private *dev_priv,
> >  		 * - latencies are in us on gen9.
> >  		 * - before then, WM1+ latency values are in 0.5us units
> >  		 */
> > -		if (INTEL_GEN(dev_priv) >= 9)
> > +		if (DISPLAY_VER(dev_priv) >= 9)
> >  			latency *= 10;
> >  		else if (level > 0)
> >  			latency *= 5;
> > @@ -3105,7 +3105,7 @@ static void ilk_setup_wm_latency(struct
> > drm_i915_private *dev_priv)
> >  	intel_print_wm_latency(dev_priv, "Sprite", dev_priv-
> > >wm.spr_latency);
> >  	intel_print_wm_latency(dev_priv, "Cursor", dev_priv-
> > >wm.cur_latency);
> > 
> > -	if (IS_GEN(dev_priv, 6)) {
> > +	if (DISPLAY_VER(dev_priv) == 6) {
> >  		snb_wm_latency_quirk(dev_priv);
> >  		snb_wm_lp3_irq_quirk(dev_priv);
> >  	}
> > @@ -3176,7 +3176,7 @@ static int ilk_compute_pipe_wm(struct
> > intel_crtc_state *crtc_state)
> >  	usable_level = max_level;
> > 
> >  	/* ILK/SNB: LP2+ watermarks only w/o sprites */
> > -	if (INTEL_GEN(dev_priv) <= 6 && pipe_wm->sprites_enabled)
> > +	if (DISPLAY_VER(dev_priv) <= 6 && pipe_wm->sprites_enabled)
> >  		usable_level = 1;
> > 
> >  	/* ILK/SNB/IVB: LP1+ watermarks only w/o scaling */ @@ -3318,12
> > +3318,12 @@ static void ilk_wm_merge(struct drm_i915_private *dev_priv,
> >  	int last_enabled_level = max_level;
> > 
> >  	/* ILK/SNB/IVB: LP1+ watermarks only w/ single pipe */
> > -	if ((INTEL_GEN(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
> > +	if ((DISPLAY_VER(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
> >  	    config->num_pipes_active > 1)
> >  		last_enabled_level = 0;
> > 
> >  	/* ILK: FBC WM must be disabled always */
> > -	merged->fbc_wm_enabled = INTEL_GEN(dev_priv) >= 6;
> > +	merged->fbc_wm_enabled = DISPLAY_VER(dev_priv) >= 6;
> > 
> >  	/* merge each WM1+ level */
> >  	for (level = 1; level <= max_level; level++) { @@ -3354,7 +3354,7 @@
> > static void ilk_wm_merge(struct drm_i915_private *dev_priv,
> >  	 * What we should check here is whether FBC can be
> >  	 * enabled sometime later.
> >  	 */
> > -	if (IS_GEN(dev_priv, 5) && !merged->fbc_wm_enabled &&
> > +	if (DISPLAY_VER(dev_priv) == 5 && !merged->fbc_wm_enabled &&
> >  	    intel_fbc_is_active(dev_priv)) {
> >  		for (level = 2; level <= max_level; level++) {
> >  			struct intel_wm_level *wm = &merged->wm[level];
> > @@ -3411,7 +3411,7 @@ static void ilk_compute_wm_results(struct
> > drm_i915_private *dev_priv,
> >  		if (r->enable)
> >  			results->wm_lp[wm_lp - 1] |= WM1_LP_SR_EN;
> > 
> > -		if (INTEL_GEN(dev_priv) >= 8)
> > +		if (DISPLAY_VER(dev_priv) >= 8)
> >  			results->wm_lp[wm_lp - 1] |=
> >  				r->fbc_val << WM1_LP_FBC_SHIFT_BDW;
> >  		else
> > @@ -3422,7 +3422,7 @@ static void ilk_compute_wm_results(struct
> > drm_i915_private *dev_priv,
> >  		 * Always set WM1S_LP_EN when spr_val != 0, even if the
> >  		 * level is disabled. Doing otherwise could cause underruns.
> >  		 */
> > -		if (INTEL_GEN(dev_priv) <= 6 && r->spr_val) {
> > +		if (DISPLAY_VER(dev_priv) <= 6 && r->spr_val) {
> >  			drm_WARN_ON(&dev_priv->drm, wm_lp != 1);
> >  			results->wm_lp_spr[wm_lp - 1] = WM1S_LP_EN | r-
> > >spr_val;
> >  		} else
> > @@ -3612,7 +3612,7 @@ static void ilk_write_wm_values(struct
> > drm_i915_private *dev_priv,
> >  	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
> >  		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK,
> > results->wm_lp_spr[0]);
> > 
> > -	if (INTEL_GEN(dev_priv) >= 7) {
> > +	if (DISPLAY_VER(dev_priv) >= 7) {
> >  		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] !=
> > results->wm_lp_spr[1])
> >  			intel_uncore_write(&dev_priv->uncore,
> > WM2S_LP_IVB, results->wm_lp_spr[1]);
> >  		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] !=
> > results->wm_lp_spr[2]) @@ -3660,14 +3660,14 @@ static bool
> > skl_needs_memory_bw_wa(struct drm_i915_private *dev_priv)  static bool
> > intel_has_sagv(struct drm_i915_private *dev_priv)  {
> > -	return (IS_GEN9_BC(dev_priv) || INTEL_GEN(dev_priv) >= 10) &&
> > +	return (IS_GEN9_BC(dev_priv) || DISPLAY_VER(dev_priv) >= 10) &&
> >  		dev_priv->sagv_status != I915_SAGV_NOT_CONTROLLED;  }
> > 
> >  static void
> >  skl_setup_sagv_block_time(struct drm_i915_private *dev_priv)  {
> > -	if (INTEL_GEN(dev_priv) >= 12) {
> > +	if (DISPLAY_VER(dev_priv) >= 12) {
> >  		u32 val = 0;
> >  		int ret;
> > 
> > @@ -3680,17 +3680,17 @@ skl_setup_sagv_block_time(struct
> > drm_i915_private *dev_priv)
> >  		}
> > 
> >  		drm_dbg(&dev_priv->drm, "Couldn't read SAGV block
> > time!\n");
> > -	} else if (IS_GEN(dev_priv, 11)) {
> > +	} else if (DISPLAY_VER(dev_priv) == 11) {
> >  		dev_priv->sagv_block_time_us = 10;
> >  		return;
> > -	} else if (IS_GEN(dev_priv, 10)) {
> > +	} else if (DISPLAY_VER(dev_priv) == 10) {
> >  		dev_priv->sagv_block_time_us = 20;
> >  		return;
> > -	} else if (IS_GEN(dev_priv, 9)) {
> > +	} else if (DISPLAY_VER(dev_priv) == 9) {
> >  		dev_priv->sagv_block_time_us = 30;
> >  		return;
> >  	} else {
> > -		MISSING_CASE(INTEL_GEN(dev_priv));
> > +		MISSING_CASE(DISPLAY_VER(dev_priv));
> >  	}
> > 
> >  	/* Default to an unusable block time */ @@ -3797,7 +3797,7 @@
> > void intel_sagv_pre_plane_update(struct intel_atomic_state *state)
> >  	if (!new_bw_state)
> >  		return;
> > 
> > -	if (INTEL_GEN(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv,
> > new_bw_state)) {
> > +	if (DISPLAY_VER(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv,
> > +new_bw_state)) {
> >  		intel_disable_sagv(dev_priv);
> >  		return;
> >  	}
> > @@ -3848,7 +3848,7 @@ void intel_sagv_post_plane_update(struct
> > intel_atomic_state *state)
> >  	if (!new_bw_state)
> >  		return;
> > 
> > -	if (INTEL_GEN(dev_priv) < 11 && intel_can_enable_sagv(dev_priv,
> > new_bw_state)) {
> > +	if (DISPLAY_VER(dev_priv) < 11 && intel_can_enable_sagv(dev_priv,
> > +new_bw_state)) {
> >  		intel_enable_sagv(dev_priv);
> >  		return;
> >  	}
> > @@ -3936,7 +3936,7 @@ static bool intel_crtc_can_enable_sagv(const struct
> > intel_crtc_state *crtc_state
> >  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> >  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> > 
> > -	if (INTEL_GEN(dev_priv) >= 12)
> > +	if (DISPLAY_VER(dev_priv) >= 12)
> >  		return tgl_crtc_can_enable_sagv(crtc_state);
> >  	else
> >  		return skl_crtc_can_enable_sagv(crtc_state);
> > @@ -3945,7 +3945,7 @@ static bool intel_crtc_can_enable_sagv(const struct
> > intel_crtc_state *crtc_state  bool intel_can_enable_sagv(struct
> > drm_i915_private *dev_priv,
> >  			   const struct intel_bw_state *bw_state)  {
> > -	if (INTEL_GEN(dev_priv) < 11 &&
> > +	if (DISPLAY_VER(dev_priv) < 11 &&
> >  	    bw_state->active_pipes && !is_power_of_2(bw_state-
> > >active_pipes))
> >  		return false;
> > 
> > @@ -3998,7 +3998,7 @@ static int intel_compute_sagv_mask(struct
> > intel_atomic_state *state)
> >  		 * latter from the plane commit hooks (especially in the
> > legacy
> >  		 * cursor case)
> >  		 */
> > -		pipe_wm->use_sagv_wm = INTEL_GEN(dev_priv) >= 12 &&
> > +		pipe_wm->use_sagv_wm = DISPLAY_VER(dev_priv) >= 12 &&
> >  				       intel_can_enable_sagv(dev_priv,
> > new_bw_state);
> >  	}
> > 
> > @@ -4022,7 +4022,7 @@ static int intel_dbuf_size(struct drm_i915_private
> > *dev_priv)
> > 
> >  	drm_WARN_ON(&dev_priv->drm, ddb_size == 0);
> > 
> > -	if (INTEL_GEN(dev_priv) < 11)
> > +	if (DISPLAY_VER(dev_priv) < 11)
> >  		return ddb_size - 4; /* 4 blocks for bypass path allocation */
> > 
> >  	return ddb_size;
> > @@ -4277,7 +4277,7 @@ skl_ddb_get_hw_plane_state(struct
> > drm_i915_private *dev_priv,
> >  					      val & PLANE_CTL_ORDER_RGBX,
> >  					      val & PLANE_CTL_ALPHA_MASK);
> > 
> > -	if (INTEL_GEN(dev_priv) >= 11) {
> > +	if (DISPLAY_VER(dev_priv) >= 11) {
> >  		val = intel_uncore_read(&dev_priv->uncore,
> > PLANE_BUF_CFG(pipe, plane_id));
> >  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
> >  	} else {
> > @@ -4601,9 +4601,9 @@ static u8 skl_compute_dbuf_slices(struct intel_crtc
> > *crtc, u8 active_pipes)
> >  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> >  	enum pipe pipe = crtc->pipe;
> > 
> > -	if (IS_GEN(dev_priv, 12))
> > +	if (DISPLAY_VER(dev_priv) == 12)
> >  		return tgl_compute_dbuf_slices(pipe, active_pipes);
> > -	else if (IS_GEN(dev_priv, 11))
> > +	else if (DISPLAY_VER(dev_priv) == 11)
> >  		return icl_compute_dbuf_slices(pipe, active_pipes);
> >  	/*
> >  	 * For anything else just return one slice yet.
> > @@ -4796,7 +4796,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
> > *state,
> >  	if (!crtc_state->hw.active)
> >  		return 0;
> > 
> > -	if (INTEL_GEN(dev_priv) >= 11)
> > +	if (DISPLAY_VER(dev_priv) >= 11)
> >  		total_data_rate =
> >  			icl_get_total_relative_data_rate(state, crtc);
> >  	else
> > @@ -4910,7 +4910,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
> > *state,
> > 
> >  		/* Gen11+ uses a separate plane for UV watermarks */
> >  		drm_WARN_ON(&dev_priv->drm,
> > -			    INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
> > +			    DISPLAY_VER(dev_priv) >= 11 &&
> > uv_total[plane_id]);
> > 
> >  		/* Leave disabled planes at (0,0) */
> >  		if (total[plane_id]) {
> > @@ -4957,7 +4957,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
> > *state,
> >  			 * Wa_1408961008:icl, ehl
> >  			 * Underruns with WM1+ disabled
> >  			 */
> > -			if (IS_GEN(dev_priv, 11) &&
> > +			if (DISPLAY_VER(dev_priv) == 11 &&
> >  			    level == 1 && wm->wm[0].plane_en) {
> >  				wm->wm[level].plane_res_b = wm-
> > >wm[0].plane_res_b;
> >  				wm->wm[level].plane_res_l = wm-
> > >wm[0].plane_res_l; @@ -5006,7 +5006,7 @@ skl_wm_method1(const
> > struct drm_i915_private *dev_priv, u32 pixel_rate,
> >  	wm_intermediate_val = latency * pixel_rate * cpp;
> >  	ret = div_fixed16(wm_intermediate_val, 1000 * dbuf_block_size);
> > 
> > -	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> > +	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> >  		ret = add_fixed16_u32(ret, 1);
> > 
> >  	return ret;
> > @@ -5086,7 +5086,7 @@ skl_compute_wm_params(const struct
> > intel_crtc_state *crtc_state,
> >  	wp->cpp = format->cpp[color_plane];
> >  	wp->plane_pixel_rate = plane_pixel_rate;
> > 
> > -	if (INTEL_GEN(dev_priv) >= 11 &&
> > +	if (DISPLAY_VER(dev_priv) >= 11 &&
> >  	    modifier == I915_FORMAT_MOD_Yf_TILED  && wp->cpp == 1)
> >  		wp->dbuf_block_size = 256;
> >  	else
> > @@ -5120,7 +5120,7 @@ skl_compute_wm_params(const struct
> > intel_crtc_state *crtc_state,
> >  					   wp->y_min_scanlines,
> >  					   wp->dbuf_block_size);
> > 
> > -		if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> > +		if (DISPLAY_VER(dev_priv) >= 10 ||
> > IS_GEMINILAKE(dev_priv))
> >  			interm_pbpl++;
> > 
> >  		wp->plane_blocks_per_line = div_fixed16(interm_pbpl, @@ -
> > 5130,7 +5130,7 @@ skl_compute_wm_params(const struct intel_crtc_state
> > *crtc_state,
> >  					   wp->dbuf_block_size);
> > 
> >  		if (!wp->x_tiled ||
> > -		    INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> > +		    DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> >  			interm_pbpl++;
> > 
> >  		wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
> > @@ -5169,7 +5169,7 @@ skl_compute_plane_wm_params(const struct
> > intel_crtc_state *crtc_state,
> > 
> >  static bool skl_wm_has_lines(struct drm_i915_private *dev_priv, int level)  {
> > -	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> > +	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> >  		return true;
> > 
> >  	/* The number of lines are ignored for the level 0 watermark. */ @@
> > -5222,7 +5222,7 @@ static void skl_compute_plane_wm(const struct
> > intel_crtc_state *crtc_state,
> >  		     (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) {
> >  			selected_result = method2;
> >  		} else if (latency >= wp->linetime_us) {
> > -			if (IS_GEN(dev_priv, 9) &&
> > +			if (DISPLAY_VER(dev_priv) == 9 &&
> >  			    !IS_GEMINILAKE(dev_priv))
> >  				selected_result = min_fixed16(method1,
> > method2);
> >  			else
> > @@ -5263,7 +5263,7 @@ static void skl_compute_plane_wm(const struct
> > intel_crtc_state *crtc_state,
> >  		}
> >  	}
> > 
> > -	if (INTEL_GEN(dev_priv) >= 11) {
> > +	if (DISPLAY_VER(dev_priv) >= 11) {
> >  		if (wp->y_tiled) {
> >  			int extra_lines;
> > 
> > @@ -5302,7 +5302,7 @@ static void skl_compute_plane_wm(const struct
> > intel_crtc_state *crtc_state,
> >  	result->min_ddb_alloc = max(min_ddb_alloc, res_blocks) + 1;
> >  	result->plane_en = true;
> > 
> > -	if (INTEL_GEN(dev_priv) < 12)
> > +	if (DISPLAY_VER(dev_priv) < 12)
> >  		result->can_sagv = latency >= dev_priv->sagv_block_time_us;
> > }
> > 
> > @@ -5359,7 +5359,7 @@ static void skl_compute_transition_wm(struct
> > drm_i915_private *dev_priv,
> >  	if (IS_GEN9_BC(dev_priv) || IS_BROXTON(dev_priv))
> >  		return;
> > 
> > -	if (INTEL_GEN(dev_priv) >= 11)
> > +	if (DISPLAY_VER(dev_priv) >= 11)
> >  		trans_min = 4;
> >  	else
> >  		trans_min = 14;
> > @@ -5422,7 +5422,7 @@ static int skl_build_plane_wm_single(struct
> > intel_crtc_state *crtc_state,
> >  	skl_compute_transition_wm(dev_priv, &wm->trans_wm,
> >  				  &wm->wm[0], &wm_params);
> > 
> > -	if (INTEL_GEN(dev_priv) >= 12) {
> > +	if (DISPLAY_VER(dev_priv) >= 12) {
> >  		tgl_compute_sagv_wm(crtc_state, &wm_params, wm);
> > 
> >  		skl_compute_transition_wm(dev_priv, &wm-
> > >sagv.trans_wm, @@ -5544,7 +5544,7 @@ static int
> > skl_build_pipe_wm(struct intel_atomic_state *state,
> >  		if (plane->pipe != crtc->pipe)
> >  			continue;
> > 
> > -		if (INTEL_GEN(dev_priv) >= 11)
> > +		if (DISPLAY_VER(dev_priv) >= 11)
> >  			ret = icl_build_plane_wm(crtc_state, plane_state);
> >  		else
> >  			ret = skl_build_plane_wm(crtc_state, plane_state);
> > @@ -5605,7 +5605,7 @@ void skl_write_plane_wm(struct intel_plane
> > *plane,
> >  	skl_write_wm_level(dev_priv, PLANE_WM_TRANS(pipe, plane_id),
> >  			   skl_plane_trans_wm(pipe_wm, plane_id));
> > 
> > -	if (INTEL_GEN(dev_priv) >= 11) {
> > +	if (DISPLAY_VER(dev_priv) >= 11) {
> >  		skl_ddb_entry_write(dev_priv,
> >  				    PLANE_BUF_CFG(pipe, plane_id), ddb_y);
> >  		return;
> > @@ -6135,7 +6135,7 @@ static void ilk_program_watermarks(struct
> > drm_i915_private *dev_priv)
> >  	ilk_wm_merge(dev_priv, &config, &max, &lp_wm_1_2);
> > 
> >  	/* 5/6 split only in single pipe config on IVB+ */
> > -	if (INTEL_GEN(dev_priv) >= 7 &&
> > +	if (DISPLAY_VER(dev_priv) >= 7 &&
> >  	    config.num_pipes_active == 1 && config.sprites_enabled) {
> >  		ilk_compute_wm_maximums(dev_priv, 1, &config,
> > INTEL_DDB_PART_5_6, &max);
> >  		ilk_wm_merge(dev_priv, &config, &max, &lp_wm_5_6); @@
> > -6221,7 +6221,7 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> > 
> >  		skl_wm_level_from_reg_val(val, &wm->trans_wm);
> > 
> > -		if (INTEL_GEN(dev_priv) >= 12) {
> > +		if (DISPLAY_VER(dev_priv) >= 12) {
> >  			wm->sagv.wm0 = wm->wm[0];
> >  			wm->sagv.trans_wm = wm->trans_wm;
> >  		}
> > @@ -6748,7 +6748,7 @@ void ilk_wm_get_hw_state(struct
> > drm_i915_private *dev_priv)
> >  	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore,
> > WM3_LP_ILK);
> > 
> >  	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore,
> > WM1S_LP_ILK);
> > -	if (INTEL_GEN(dev_priv) >= 7) {
> > +	if (DISPLAY_VER(dev_priv) >= 7) {
> >  		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore,
> > WM2S_LP_IVB);
> >  		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore,
> > WM3S_LP_IVB);
> >  	}
> > @@ -7649,15 +7649,15 @@ void intel_init_pm(struct drm_i915_private
> > *dev_priv)
> >  		skl_setup_sagv_block_time(dev_priv);
> > 
> >  	/* For FIFO watermark updates */
> > -	if (INTEL_GEN(dev_priv) >= 9) {
> > +	if (DISPLAY_VER(dev_priv) >= 9) {
> >  		skl_setup_wm_latency(dev_priv);
> >  		dev_priv->display.compute_global_watermarks =
> > skl_compute_wm;
> >  	} else if (HAS_PCH_SPLIT(dev_priv)) {
> >  		ilk_setup_wm_latency(dev_priv);
> > 
> > -		if ((IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[1] &&
> > +		if ((DISPLAY_VER(dev_priv) == 5 && dev_priv-
> > >wm.pri_latency[1] &&
> >  		     dev_priv->wm.spr_latency[1] && dev_priv-
> > >wm.cur_latency[1]) ||
> > -		    (!IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[0] &&
> > +		    (DISPLAY_VER(dev_priv) != 5 && dev_priv-
> > >wm.pri_latency[0] &&
> >  		     dev_priv->wm.spr_latency[0] && dev_priv-
> > >wm.cur_latency[0])) {
> >  			dev_priv->display.compute_pipe_wm =
> > ilk_compute_pipe_wm;
> >  			dev_priv->display.compute_intermediate_wm = @@
> > -7700,12 +7700,12 @@ void intel_init_pm(struct drm_i915_private
> > *dev_priv)
> >  			dev_priv->display.update_wm = NULL;
> >  		} else
> >  			dev_priv->display.update_wm = pnv_update_wm;
> > -	} else if (IS_GEN(dev_priv, 4)) {
> > +	} else if (DISPLAY_VER(dev_priv) == 4) {
> >  		dev_priv->display.update_wm = i965_update_wm;
> > -	} else if (IS_GEN(dev_priv, 3)) {
> > +	} else if (DISPLAY_VER(dev_priv) == 3) {
> >  		dev_priv->display.update_wm = i9xx_update_wm;
> >  		dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
> > -	} else if (IS_GEN(dev_priv, 2)) {
> > +	} else if (DISPLAY_VER(dev_priv) == 2) {
> >  		if (INTEL_NUM_PIPES(dev_priv) == 1) {
> >  			dev_priv->display.update_wm = i845_update_wm;
> >  			dev_priv->display.get_fifo_size = i845_get_fifo_size;
> > --
> > 2.25.4
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jani Nikula March 17, 2021, 6:02 p.m. UTC | #3
On Fri, 12 Mar 2021, Matt Roper <matthew.d.roper@intel.com> wrote:
> On Fri, Mar 12, 2021 at 12:42:27PM -0800, Srivatsa, Anusha wrote:
>> 
>> 
>> > -----Original Message-----
>> > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Matt
>> > Roper
>> > Sent: Thursday, March 11, 2021 2:36 PM
>> > To: intel-gfx@lists.freedesktop.org
>> > Subject: [Intel-gfx] [PATCH 04/56] drm/i915: Convert INTEL_GEN() to
>> > DISPLAY_VER() as appropriate in intel_pm.c
>> > 
>> > Although most of the code in this file is display-related (watermarks), there's
>> > some functions that are not (e.g., clock gating).  Thus we need to do the
>> > conversions to DISPLAY_VER() manually here rather than using Coccinelle.
>> > 
>> > In the near-future we'll probably want to think about moving watermark
>> > logic out of intel_pm.c and into watermark-specific files under the display/
>> > directory.
>> > 
>> > Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
>> 
>> Any reason Patch 4 and Patch 5 are not one single patch? It looks like
>> both replace INTEL_GEN() with DISPLAY_VER() where necessary... 
>
> They're manually changing different sections of the driver (parts which
> can't be done in an automated manner), so I wanted to make it easier to
> review the two parts separately.

Also definitely smaller pieces rather than the big ones!

BR,
Jani.


>
>
> Matt
>
>> 
>> Anusha 
>> > ---
>> >  drivers/gpu/drm/i915/intel_pm.c | 132 ++++++++++++++++----------------
>> >  1 file changed, 66 insertions(+), 66 deletions(-)
>> > 
>> > diff --git a/drivers/gpu/drm/i915/intel_pm.c
>> > b/drivers/gpu/drm/i915/intel_pm.c index 854ffecd98d9..2616b1845719
>> > 100644
>> > --- a/drivers/gpu/drm/i915/intel_pm.c
>> > +++ b/drivers/gpu/drm/i915/intel_pm.c
>> > @@ -2339,7 +2339,7 @@ static void i9xx_update_wm(struct intel_crtc
>> > *unused_crtc)
>> > 
>> >  	if (IS_I945GM(dev_priv))
>> >  		wm_info = &i945_wm_info;
>> > -	else if (!IS_GEN(dev_priv, 2))
>> > +	else if (DISPLAY_VER(dev_priv) != 2)
>> >  		wm_info = &i915_wm_info;
>> >  	else
>> >  		wm_info = &i830_a_wm_info;
>> > @@ -2353,7 +2353,7 @@ static void i9xx_update_wm(struct intel_crtc
>> > *unused_crtc)
>> >  			crtc->base.primary->state->fb;
>> >  		int cpp;
>> > 
>> > -		if (IS_GEN(dev_priv, 2))
>> > +		if (DISPLAY_VER(dev_priv) == 2)
>> >  			cpp = 4;
>> >  		else
>> >  			cpp = fb->format->cpp[0];
>> > @@ -2368,7 +2368,7 @@ static void i9xx_update_wm(struct intel_crtc
>> > *unused_crtc)
>> >  			planea_wm = wm_info->max_wm;
>> >  	}
>> > 
>> > -	if (IS_GEN(dev_priv, 2))
>> > +	if (DISPLAY_VER(dev_priv) == 2)
>> >  		wm_info = &i830_bc_wm_info;
>> > 
>> >  	fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B); @@ -
>> > 2380,7 +2380,7 @@ static void i9xx_update_wm(struct intel_crtc
>> > *unused_crtc)
>> >  			crtc->base.primary->state->fb;
>> >  		int cpp;
>> > 
>> > -		if (IS_GEN(dev_priv, 2))
>> > +		if (DISPLAY_VER(dev_priv) == 2)
>> >  			cpp = 4;
>> >  		else
>> >  			cpp = fb->format->cpp[0];
>> > @@ -2652,9 +2652,9 @@ static u32 ilk_compute_fbc_wm(const struct
>> > intel_crtc_state *crtc_state,  static unsigned int  ilk_display_fifo_size(const
>> > struct drm_i915_private *dev_priv)  {
>> > -	if (INTEL_GEN(dev_priv) >= 8)
>> > +	if (DISPLAY_VER(dev_priv) >= 8)
>> >  		return 3072;
>> > -	else if (INTEL_GEN(dev_priv) >= 7)
>> > +	else if (DISPLAY_VER(dev_priv) >= 7)
>> >  		return 768;
>> >  	else
>> >  		return 512;
>> > @@ -2664,10 +2664,10 @@ static unsigned int
>> > ilk_plane_wm_reg_max(const struct drm_i915_private *dev_priv,
>> >  		     int level, bool is_sprite)
>> >  {
>> > -	if (INTEL_GEN(dev_priv) >= 8)
>> > +	if (DISPLAY_VER(dev_priv) >= 8)
>> >  		/* BDW primary/sprite plane watermarks */
>> >  		return level == 0 ? 255 : 2047;
>> > -	else if (INTEL_GEN(dev_priv) >= 7)
>> > +	else if (DISPLAY_VER(dev_priv) >= 7)
>> >  		/* IVB/HSW primary/sprite plane watermarks */
>> >  		return level == 0 ? 127 : 1023;
>> >  	else if (!is_sprite)
>> > @@ -2681,7 +2681,7 @@ ilk_plane_wm_reg_max(const struct
>> > drm_i915_private *dev_priv,  static unsigned int
>> > ilk_cursor_wm_reg_max(const struct drm_i915_private *dev_priv, int level)  {
>> > -	if (INTEL_GEN(dev_priv) >= 7)
>> > +	if (DISPLAY_VER(dev_priv) >= 7)
>> >  		return level == 0 ? 63 : 255;
>> >  	else
>> >  		return level == 0 ? 31 : 63;
>> > @@ -2689,7 +2689,7 @@ ilk_cursor_wm_reg_max(const struct
>> > drm_i915_private *dev_priv, int level)
>> > 
>> >  static unsigned int ilk_fbc_wm_reg_max(const struct drm_i915_private
>> > *dev_priv)  {
>> > -	if (INTEL_GEN(dev_priv) >= 8)
>> > +	if (DISPLAY_VER(dev_priv) >= 8)
>> >  		return 31;
>> >  	else
>> >  		return 15;
>> > @@ -2717,7 +2717,7 @@ static unsigned int ilk_plane_wm_max(const struct
>> > drm_i915_private *dev_priv,
>> >  		 * FIFO size is only half of the self
>> >  		 * refresh FIFO size on ILK/SNB.
>> >  		 */
>> > -		if (INTEL_GEN(dev_priv) <= 6)
>> > +		if (DISPLAY_VER(dev_priv) <= 6)
>> >  			fifo_size /= 2;
>> >  	}
>> > 
>> > @@ -2852,7 +2852,7 @@ static void intel_read_wm_latency(struct
>> > drm_i915_private *dev_priv,  {
>> >  	struct intel_uncore *uncore = &dev_priv->uncore;
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 9) {
>> > +	if (DISPLAY_VER(dev_priv) >= 9) {
>> >  		u32 val;
>> >  		int ret, i;
>> >  		int level, max_level = ilk_wm_max_level(dev_priv); @@ -
>> > 2944,14 +2944,14 @@ static void intel_read_wm_latency(struct
>> > drm_i915_private *dev_priv,
>> >  		wm[2] = (sskpd >> 12) & 0xFF;
>> >  		wm[3] = (sskpd >> 20) & 0x1FF;
>> >  		wm[4] = (sskpd >> 32) & 0x1FF;
>> > -	} else if (INTEL_GEN(dev_priv) >= 6) {
>> > +	} else if (DISPLAY_VER(dev_priv) >= 6) {
>> >  		u32 sskpd = intel_uncore_read(uncore, MCH_SSKPD);
>> > 
>> >  		wm[0] = (sskpd >> SSKPD_WM0_SHIFT) & SSKPD_WM_MASK;
>> >  		wm[1] = (sskpd >> SSKPD_WM1_SHIFT) & SSKPD_WM_MASK;
>> >  		wm[2] = (sskpd >> SSKPD_WM2_SHIFT) & SSKPD_WM_MASK;
>> >  		wm[3] = (sskpd >> SSKPD_WM3_SHIFT) & SSKPD_WM_MASK;
>> > -	} else if (INTEL_GEN(dev_priv) >= 5) {
>> > +	} else if (DISPLAY_VER(dev_priv) >= 5) {
>> >  		u32 mltr = intel_uncore_read(uncore, MLTR_ILK);
>> > 
>> >  		/* ILK primary LP0 latency is 700 ns */ @@ -2967,7 +2967,7
>> > @@ static void intel_fixup_spr_wm_latency(struct drm_i915_private
>> > *dev_priv,
>> >  				       u16 wm[5])
>> >  {
>> >  	/* ILK sprite LP0 latency is 1300 ns */
>> > -	if (IS_GEN(dev_priv, 5))
>> > +	if (DISPLAY_VER(dev_priv) == 5)
>> >  		wm[0] = 13;
>> >  }
>> > 
>> > @@ -2975,18 +2975,18 @@ static void intel_fixup_cur_wm_latency(struct
>> > drm_i915_private *dev_priv,
>> >  				       u16 wm[5])
>> >  {
>> >  	/* ILK cursor LP0 latency is 1300 ns */
>> > -	if (IS_GEN(dev_priv, 5))
>> > +	if (DISPLAY_VER(dev_priv) == 5)
>> >  		wm[0] = 13;
>> >  }
>> > 
>> >  int ilk_wm_max_level(const struct drm_i915_private *dev_priv)  {
>> >  	/* how many WM levels are we expecting */
>> > -	if (INTEL_GEN(dev_priv) >= 9)
>> > +	if (DISPLAY_VER(dev_priv) >= 9)
>> >  		return 7;
>> >  	else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
>> >  		return 4;
>> > -	else if (INTEL_GEN(dev_priv) >= 6)
>> > +	else if (DISPLAY_VER(dev_priv) >= 6)
>> >  		return 3;
>> >  	else
>> >  		return 2;
>> > @@ -3012,7 +3012,7 @@ static void intel_print_wm_latency(struct
>> > drm_i915_private *dev_priv,
>> >  		 * - latencies are in us on gen9.
>> >  		 * - before then, WM1+ latency values are in 0.5us units
>> >  		 */
>> > -		if (INTEL_GEN(dev_priv) >= 9)
>> > +		if (DISPLAY_VER(dev_priv) >= 9)
>> >  			latency *= 10;
>> >  		else if (level > 0)
>> >  			latency *= 5;
>> > @@ -3105,7 +3105,7 @@ static void ilk_setup_wm_latency(struct
>> > drm_i915_private *dev_priv)
>> >  	intel_print_wm_latency(dev_priv, "Sprite", dev_priv-
>> > >wm.spr_latency);
>> >  	intel_print_wm_latency(dev_priv, "Cursor", dev_priv-
>> > >wm.cur_latency);
>> > 
>> > -	if (IS_GEN(dev_priv, 6)) {
>> > +	if (DISPLAY_VER(dev_priv) == 6) {
>> >  		snb_wm_latency_quirk(dev_priv);
>> >  		snb_wm_lp3_irq_quirk(dev_priv);
>> >  	}
>> > @@ -3176,7 +3176,7 @@ static int ilk_compute_pipe_wm(struct
>> > intel_crtc_state *crtc_state)
>> >  	usable_level = max_level;
>> > 
>> >  	/* ILK/SNB: LP2+ watermarks only w/o sprites */
>> > -	if (INTEL_GEN(dev_priv) <= 6 && pipe_wm->sprites_enabled)
>> > +	if (DISPLAY_VER(dev_priv) <= 6 && pipe_wm->sprites_enabled)
>> >  		usable_level = 1;
>> > 
>> >  	/* ILK/SNB/IVB: LP1+ watermarks only w/o scaling */ @@ -3318,12
>> > +3318,12 @@ static void ilk_wm_merge(struct drm_i915_private *dev_priv,
>> >  	int last_enabled_level = max_level;
>> > 
>> >  	/* ILK/SNB/IVB: LP1+ watermarks only w/ single pipe */
>> > -	if ((INTEL_GEN(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
>> > +	if ((DISPLAY_VER(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
>> >  	    config->num_pipes_active > 1)
>> >  		last_enabled_level = 0;
>> > 
>> >  	/* ILK: FBC WM must be disabled always */
>> > -	merged->fbc_wm_enabled = INTEL_GEN(dev_priv) >= 6;
>> > +	merged->fbc_wm_enabled = DISPLAY_VER(dev_priv) >= 6;
>> > 
>> >  	/* merge each WM1+ level */
>> >  	for (level = 1; level <= max_level; level++) { @@ -3354,7 +3354,7 @@
>> > static void ilk_wm_merge(struct drm_i915_private *dev_priv,
>> >  	 * What we should check here is whether FBC can be
>> >  	 * enabled sometime later.
>> >  	 */
>> > -	if (IS_GEN(dev_priv, 5) && !merged->fbc_wm_enabled &&
>> > +	if (DISPLAY_VER(dev_priv) == 5 && !merged->fbc_wm_enabled &&
>> >  	    intel_fbc_is_active(dev_priv)) {
>> >  		for (level = 2; level <= max_level; level++) {
>> >  			struct intel_wm_level *wm = &merged->wm[level];
>> > @@ -3411,7 +3411,7 @@ static void ilk_compute_wm_results(struct
>> > drm_i915_private *dev_priv,
>> >  		if (r->enable)
>> >  			results->wm_lp[wm_lp - 1] |= WM1_LP_SR_EN;
>> > 
>> > -		if (INTEL_GEN(dev_priv) >= 8)
>> > +		if (DISPLAY_VER(dev_priv) >= 8)
>> >  			results->wm_lp[wm_lp - 1] |=
>> >  				r->fbc_val << WM1_LP_FBC_SHIFT_BDW;
>> >  		else
>> > @@ -3422,7 +3422,7 @@ static void ilk_compute_wm_results(struct
>> > drm_i915_private *dev_priv,
>> >  		 * Always set WM1S_LP_EN when spr_val != 0, even if the
>> >  		 * level is disabled. Doing otherwise could cause underruns.
>> >  		 */
>> > -		if (INTEL_GEN(dev_priv) <= 6 && r->spr_val) {
>> > +		if (DISPLAY_VER(dev_priv) <= 6 && r->spr_val) {
>> >  			drm_WARN_ON(&dev_priv->drm, wm_lp != 1);
>> >  			results->wm_lp_spr[wm_lp - 1] = WM1S_LP_EN | r-
>> > >spr_val;
>> >  		} else
>> > @@ -3612,7 +3612,7 @@ static void ilk_write_wm_values(struct
>> > drm_i915_private *dev_priv,
>> >  	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
>> >  		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK,
>> > results->wm_lp_spr[0]);
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 7) {
>> > +	if (DISPLAY_VER(dev_priv) >= 7) {
>> >  		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] !=
>> > results->wm_lp_spr[1])
>> >  			intel_uncore_write(&dev_priv->uncore,
>> > WM2S_LP_IVB, results->wm_lp_spr[1]);
>> >  		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] !=
>> > results->wm_lp_spr[2]) @@ -3660,14 +3660,14 @@ static bool
>> > skl_needs_memory_bw_wa(struct drm_i915_private *dev_priv)  static bool
>> > intel_has_sagv(struct drm_i915_private *dev_priv)  {
>> > -	return (IS_GEN9_BC(dev_priv) || INTEL_GEN(dev_priv) >= 10) &&
>> > +	return (IS_GEN9_BC(dev_priv) || DISPLAY_VER(dev_priv) >= 10) &&
>> >  		dev_priv->sagv_status != I915_SAGV_NOT_CONTROLLED;  }
>> > 
>> >  static void
>> >  skl_setup_sagv_block_time(struct drm_i915_private *dev_priv)  {
>> > -	if (INTEL_GEN(dev_priv) >= 12) {
>> > +	if (DISPLAY_VER(dev_priv) >= 12) {
>> >  		u32 val = 0;
>> >  		int ret;
>> > 
>> > @@ -3680,17 +3680,17 @@ skl_setup_sagv_block_time(struct
>> > drm_i915_private *dev_priv)
>> >  		}
>> > 
>> >  		drm_dbg(&dev_priv->drm, "Couldn't read SAGV block
>> > time!\n");
>> > -	} else if (IS_GEN(dev_priv, 11)) {
>> > +	} else if (DISPLAY_VER(dev_priv) == 11) {
>> >  		dev_priv->sagv_block_time_us = 10;
>> >  		return;
>> > -	} else if (IS_GEN(dev_priv, 10)) {
>> > +	} else if (DISPLAY_VER(dev_priv) == 10) {
>> >  		dev_priv->sagv_block_time_us = 20;
>> >  		return;
>> > -	} else if (IS_GEN(dev_priv, 9)) {
>> > +	} else if (DISPLAY_VER(dev_priv) == 9) {
>> >  		dev_priv->sagv_block_time_us = 30;
>> >  		return;
>> >  	} else {
>> > -		MISSING_CASE(INTEL_GEN(dev_priv));
>> > +		MISSING_CASE(DISPLAY_VER(dev_priv));
>> >  	}
>> > 
>> >  	/* Default to an unusable block time */ @@ -3797,7 +3797,7 @@
>> > void intel_sagv_pre_plane_update(struct intel_atomic_state *state)
>> >  	if (!new_bw_state)
>> >  		return;
>> > 
>> > -	if (INTEL_GEN(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv,
>> > new_bw_state)) {
>> > +	if (DISPLAY_VER(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv,
>> > +new_bw_state)) {
>> >  		intel_disable_sagv(dev_priv);
>> >  		return;
>> >  	}
>> > @@ -3848,7 +3848,7 @@ void intel_sagv_post_plane_update(struct
>> > intel_atomic_state *state)
>> >  	if (!new_bw_state)
>> >  		return;
>> > 
>> > -	if (INTEL_GEN(dev_priv) < 11 && intel_can_enable_sagv(dev_priv,
>> > new_bw_state)) {
>> > +	if (DISPLAY_VER(dev_priv) < 11 && intel_can_enable_sagv(dev_priv,
>> > +new_bw_state)) {
>> >  		intel_enable_sagv(dev_priv);
>> >  		return;
>> >  	}
>> > @@ -3936,7 +3936,7 @@ static bool intel_crtc_can_enable_sagv(const struct
>> > intel_crtc_state *crtc_state
>> >  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>> >  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 12)
>> > +	if (DISPLAY_VER(dev_priv) >= 12)
>> >  		return tgl_crtc_can_enable_sagv(crtc_state);
>> >  	else
>> >  		return skl_crtc_can_enable_sagv(crtc_state);
>> > @@ -3945,7 +3945,7 @@ static bool intel_crtc_can_enable_sagv(const struct
>> > intel_crtc_state *crtc_state  bool intel_can_enable_sagv(struct
>> > drm_i915_private *dev_priv,
>> >  			   const struct intel_bw_state *bw_state)  {
>> > -	if (INTEL_GEN(dev_priv) < 11 &&
>> > +	if (DISPLAY_VER(dev_priv) < 11 &&
>> >  	    bw_state->active_pipes && !is_power_of_2(bw_state-
>> > >active_pipes))
>> >  		return false;
>> > 
>> > @@ -3998,7 +3998,7 @@ static int intel_compute_sagv_mask(struct
>> > intel_atomic_state *state)
>> >  		 * latter from the plane commit hooks (especially in the
>> > legacy
>> >  		 * cursor case)
>> >  		 */
>> > -		pipe_wm->use_sagv_wm = INTEL_GEN(dev_priv) >= 12 &&
>> > +		pipe_wm->use_sagv_wm = DISPLAY_VER(dev_priv) >= 12 &&
>> >  				       intel_can_enable_sagv(dev_priv,
>> > new_bw_state);
>> >  	}
>> > 
>> > @@ -4022,7 +4022,7 @@ static int intel_dbuf_size(struct drm_i915_private
>> > *dev_priv)
>> > 
>> >  	drm_WARN_ON(&dev_priv->drm, ddb_size == 0);
>> > 
>> > -	if (INTEL_GEN(dev_priv) < 11)
>> > +	if (DISPLAY_VER(dev_priv) < 11)
>> >  		return ddb_size - 4; /* 4 blocks for bypass path allocation */
>> > 
>> >  	return ddb_size;
>> > @@ -4277,7 +4277,7 @@ skl_ddb_get_hw_plane_state(struct
>> > drm_i915_private *dev_priv,
>> >  					      val & PLANE_CTL_ORDER_RGBX,
>> >  					      val & PLANE_CTL_ALPHA_MASK);
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 11) {
>> > +	if (DISPLAY_VER(dev_priv) >= 11) {
>> >  		val = intel_uncore_read(&dev_priv->uncore,
>> > PLANE_BUF_CFG(pipe, plane_id));
>> >  		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
>> >  	} else {
>> > @@ -4601,9 +4601,9 @@ static u8 skl_compute_dbuf_slices(struct intel_crtc
>> > *crtc, u8 active_pipes)
>> >  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> >  	enum pipe pipe = crtc->pipe;
>> > 
>> > -	if (IS_GEN(dev_priv, 12))
>> > +	if (DISPLAY_VER(dev_priv) == 12)
>> >  		return tgl_compute_dbuf_slices(pipe, active_pipes);
>> > -	else if (IS_GEN(dev_priv, 11))
>> > +	else if (DISPLAY_VER(dev_priv) == 11)
>> >  		return icl_compute_dbuf_slices(pipe, active_pipes);
>> >  	/*
>> >  	 * For anything else just return one slice yet.
>> > @@ -4796,7 +4796,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
>> > *state,
>> >  	if (!crtc_state->hw.active)
>> >  		return 0;
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 11)
>> > +	if (DISPLAY_VER(dev_priv) >= 11)
>> >  		total_data_rate =
>> >  			icl_get_total_relative_data_rate(state, crtc);
>> >  	else
>> > @@ -4910,7 +4910,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
>> > *state,
>> > 
>> >  		/* Gen11+ uses a separate plane for UV watermarks */
>> >  		drm_WARN_ON(&dev_priv->drm,
>> > -			    INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
>> > +			    DISPLAY_VER(dev_priv) >= 11 &&
>> > uv_total[plane_id]);
>> > 
>> >  		/* Leave disabled planes at (0,0) */
>> >  		if (total[plane_id]) {
>> > @@ -4957,7 +4957,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state
>> > *state,
>> >  			 * Wa_1408961008:icl, ehl
>> >  			 * Underruns with WM1+ disabled
>> >  			 */
>> > -			if (IS_GEN(dev_priv, 11) &&
>> > +			if (DISPLAY_VER(dev_priv) == 11 &&
>> >  			    level == 1 && wm->wm[0].plane_en) {
>> >  				wm->wm[level].plane_res_b = wm-
>> > >wm[0].plane_res_b;
>> >  				wm->wm[level].plane_res_l = wm-
>> > >wm[0].plane_res_l; @@ -5006,7 +5006,7 @@ skl_wm_method1(const
>> > struct drm_i915_private *dev_priv, u32 pixel_rate,
>> >  	wm_intermediate_val = latency * pixel_rate * cpp;
>> >  	ret = div_fixed16(wm_intermediate_val, 1000 * dbuf_block_size);
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> > +	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> >  		ret = add_fixed16_u32(ret, 1);
>> > 
>> >  	return ret;
>> > @@ -5086,7 +5086,7 @@ skl_compute_wm_params(const struct
>> > intel_crtc_state *crtc_state,
>> >  	wp->cpp = format->cpp[color_plane];
>> >  	wp->plane_pixel_rate = plane_pixel_rate;
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 11 &&
>> > +	if (DISPLAY_VER(dev_priv) >= 11 &&
>> >  	    modifier == I915_FORMAT_MOD_Yf_TILED  && wp->cpp == 1)
>> >  		wp->dbuf_block_size = 256;
>> >  	else
>> > @@ -5120,7 +5120,7 @@ skl_compute_wm_params(const struct
>> > intel_crtc_state *crtc_state,
>> >  					   wp->y_min_scanlines,
>> >  					   wp->dbuf_block_size);
>> > 
>> > -		if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> > +		if (DISPLAY_VER(dev_priv) >= 10 ||
>> > IS_GEMINILAKE(dev_priv))
>> >  			interm_pbpl++;
>> > 
>> >  		wp->plane_blocks_per_line = div_fixed16(interm_pbpl, @@ -
>> > 5130,7 +5130,7 @@ skl_compute_wm_params(const struct intel_crtc_state
>> > *crtc_state,
>> >  					   wp->dbuf_block_size);
>> > 
>> >  		if (!wp->x_tiled ||
>> > -		    INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> > +		    DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> >  			interm_pbpl++;
>> > 
>> >  		wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
>> > @@ -5169,7 +5169,7 @@ skl_compute_plane_wm_params(const struct
>> > intel_crtc_state *crtc_state,
>> > 
>> >  static bool skl_wm_has_lines(struct drm_i915_private *dev_priv, int level)  {
>> > -	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> > +	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>> >  		return true;
>> > 
>> >  	/* The number of lines are ignored for the level 0 watermark. */ @@
>> > -5222,7 +5222,7 @@ static void skl_compute_plane_wm(const struct
>> > intel_crtc_state *crtc_state,
>> >  		     (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) {
>> >  			selected_result = method2;
>> >  		} else if (latency >= wp->linetime_us) {
>> > -			if (IS_GEN(dev_priv, 9) &&
>> > +			if (DISPLAY_VER(dev_priv) == 9 &&
>> >  			    !IS_GEMINILAKE(dev_priv))
>> >  				selected_result = min_fixed16(method1,
>> > method2);
>> >  			else
>> > @@ -5263,7 +5263,7 @@ static void skl_compute_plane_wm(const struct
>> > intel_crtc_state *crtc_state,
>> >  		}
>> >  	}
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 11) {
>> > +	if (DISPLAY_VER(dev_priv) >= 11) {
>> >  		if (wp->y_tiled) {
>> >  			int extra_lines;
>> > 
>> > @@ -5302,7 +5302,7 @@ static void skl_compute_plane_wm(const struct
>> > intel_crtc_state *crtc_state,
>> >  	result->min_ddb_alloc = max(min_ddb_alloc, res_blocks) + 1;
>> >  	result->plane_en = true;
>> > 
>> > -	if (INTEL_GEN(dev_priv) < 12)
>> > +	if (DISPLAY_VER(dev_priv) < 12)
>> >  		result->can_sagv = latency >= dev_priv->sagv_block_time_us;
>> > }
>> > 
>> > @@ -5359,7 +5359,7 @@ static void skl_compute_transition_wm(struct
>> > drm_i915_private *dev_priv,
>> >  	if (IS_GEN9_BC(dev_priv) || IS_BROXTON(dev_priv))
>> >  		return;
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 11)
>> > +	if (DISPLAY_VER(dev_priv) >= 11)
>> >  		trans_min = 4;
>> >  	else
>> >  		trans_min = 14;
>> > @@ -5422,7 +5422,7 @@ static int skl_build_plane_wm_single(struct
>> > intel_crtc_state *crtc_state,
>> >  	skl_compute_transition_wm(dev_priv, &wm->trans_wm,
>> >  				  &wm->wm[0], &wm_params);
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 12) {
>> > +	if (DISPLAY_VER(dev_priv) >= 12) {
>> >  		tgl_compute_sagv_wm(crtc_state, &wm_params, wm);
>> > 
>> >  		skl_compute_transition_wm(dev_priv, &wm-
>> > >sagv.trans_wm, @@ -5544,7 +5544,7 @@ static int
>> > skl_build_pipe_wm(struct intel_atomic_state *state,
>> >  		if (plane->pipe != crtc->pipe)
>> >  			continue;
>> > 
>> > -		if (INTEL_GEN(dev_priv) >= 11)
>> > +		if (DISPLAY_VER(dev_priv) >= 11)
>> >  			ret = icl_build_plane_wm(crtc_state, plane_state);
>> >  		else
>> >  			ret = skl_build_plane_wm(crtc_state, plane_state);
>> > @@ -5605,7 +5605,7 @@ void skl_write_plane_wm(struct intel_plane
>> > *plane,
>> >  	skl_write_wm_level(dev_priv, PLANE_WM_TRANS(pipe, plane_id),
>> >  			   skl_plane_trans_wm(pipe_wm, plane_id));
>> > 
>> > -	if (INTEL_GEN(dev_priv) >= 11) {
>> > +	if (DISPLAY_VER(dev_priv) >= 11) {
>> >  		skl_ddb_entry_write(dev_priv,
>> >  				    PLANE_BUF_CFG(pipe, plane_id), ddb_y);
>> >  		return;
>> > @@ -6135,7 +6135,7 @@ static void ilk_program_watermarks(struct
>> > drm_i915_private *dev_priv)
>> >  	ilk_wm_merge(dev_priv, &config, &max, &lp_wm_1_2);
>> > 
>> >  	/* 5/6 split only in single pipe config on IVB+ */
>> > -	if (INTEL_GEN(dev_priv) >= 7 &&
>> > +	if (DISPLAY_VER(dev_priv) >= 7 &&
>> >  	    config.num_pipes_active == 1 && config.sprites_enabled) {
>> >  		ilk_compute_wm_maximums(dev_priv, 1, &config,
>> > INTEL_DDB_PART_5_6, &max);
>> >  		ilk_wm_merge(dev_priv, &config, &max, &lp_wm_5_6); @@
>> > -6221,7 +6221,7 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
>> > 
>> >  		skl_wm_level_from_reg_val(val, &wm->trans_wm);
>> > 
>> > -		if (INTEL_GEN(dev_priv) >= 12) {
>> > +		if (DISPLAY_VER(dev_priv) >= 12) {
>> >  			wm->sagv.wm0 = wm->wm[0];
>> >  			wm->sagv.trans_wm = wm->trans_wm;
>> >  		}
>> > @@ -6748,7 +6748,7 @@ void ilk_wm_get_hw_state(struct
>> > drm_i915_private *dev_priv)
>> >  	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore,
>> > WM3_LP_ILK);
>> > 
>> >  	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore,
>> > WM1S_LP_ILK);
>> > -	if (INTEL_GEN(dev_priv) >= 7) {
>> > +	if (DISPLAY_VER(dev_priv) >= 7) {
>> >  		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore,
>> > WM2S_LP_IVB);
>> >  		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore,
>> > WM3S_LP_IVB);
>> >  	}
>> > @@ -7649,15 +7649,15 @@ void intel_init_pm(struct drm_i915_private
>> > *dev_priv)
>> >  		skl_setup_sagv_block_time(dev_priv);
>> > 
>> >  	/* For FIFO watermark updates */
>> > -	if (INTEL_GEN(dev_priv) >= 9) {
>> > +	if (DISPLAY_VER(dev_priv) >= 9) {
>> >  		skl_setup_wm_latency(dev_priv);
>> >  		dev_priv->display.compute_global_watermarks =
>> > skl_compute_wm;
>> >  	} else if (HAS_PCH_SPLIT(dev_priv)) {
>> >  		ilk_setup_wm_latency(dev_priv);
>> > 
>> > -		if ((IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[1] &&
>> > +		if ((DISPLAY_VER(dev_priv) == 5 && dev_priv-
>> > >wm.pri_latency[1] &&
>> >  		     dev_priv->wm.spr_latency[1] && dev_priv-
>> > >wm.cur_latency[1]) ||
>> > -		    (!IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[0] &&
>> > +		    (DISPLAY_VER(dev_priv) != 5 && dev_priv-
>> > >wm.pri_latency[0] &&
>> >  		     dev_priv->wm.spr_latency[0] && dev_priv-
>> > >wm.cur_latency[0])) {
>> >  			dev_priv->display.compute_pipe_wm =
>> > ilk_compute_pipe_wm;
>> >  			dev_priv->display.compute_intermediate_wm = @@
>> > -7700,12 +7700,12 @@ void intel_init_pm(struct drm_i915_private
>> > *dev_priv)
>> >  			dev_priv->display.update_wm = NULL;
>> >  		} else
>> >  			dev_priv->display.update_wm = pnv_update_wm;
>> > -	} else if (IS_GEN(dev_priv, 4)) {
>> > +	} else if (DISPLAY_VER(dev_priv) == 4) {
>> >  		dev_priv->display.update_wm = i965_update_wm;
>> > -	} else if (IS_GEN(dev_priv, 3)) {
>> > +	} else if (DISPLAY_VER(dev_priv) == 3) {
>> >  		dev_priv->display.update_wm = i9xx_update_wm;
>> >  		dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
>> > -	} else if (IS_GEN(dev_priv, 2)) {
>> > +	} else if (DISPLAY_VER(dev_priv) == 2) {
>> >  		if (INTEL_NUM_PIPES(dev_priv) == 1) {
>> >  			dev_priv->display.update_wm = i845_update_wm;
>> >  			dev_priv->display.get_fifo_size = i845_get_fifo_size;
>> > --
>> > 2.25.4
>> > 
>> > _______________________________________________
>> > Intel-gfx mailing list
>> > Intel-gfx@lists.freedesktop.org
>> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 854ffecd98d9..2616b1845719 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2339,7 +2339,7 @@  static void i9xx_update_wm(struct intel_crtc *unused_crtc)
 
 	if (IS_I945GM(dev_priv))
 		wm_info = &i945_wm_info;
-	else if (!IS_GEN(dev_priv, 2))
+	else if (DISPLAY_VER(dev_priv) != 2)
 		wm_info = &i915_wm_info;
 	else
 		wm_info = &i830_a_wm_info;
@@ -2353,7 +2353,7 @@  static void i9xx_update_wm(struct intel_crtc *unused_crtc)
 			crtc->base.primary->state->fb;
 		int cpp;
 
-		if (IS_GEN(dev_priv, 2))
+		if (DISPLAY_VER(dev_priv) == 2)
 			cpp = 4;
 		else
 			cpp = fb->format->cpp[0];
@@ -2368,7 +2368,7 @@  static void i9xx_update_wm(struct intel_crtc *unused_crtc)
 			planea_wm = wm_info->max_wm;
 	}
 
-	if (IS_GEN(dev_priv, 2))
+	if (DISPLAY_VER(dev_priv) == 2)
 		wm_info = &i830_bc_wm_info;
 
 	fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B);
@@ -2380,7 +2380,7 @@  static void i9xx_update_wm(struct intel_crtc *unused_crtc)
 			crtc->base.primary->state->fb;
 		int cpp;
 
-		if (IS_GEN(dev_priv, 2))
+		if (DISPLAY_VER(dev_priv) == 2)
 			cpp = 4;
 		else
 			cpp = fb->format->cpp[0];
@@ -2652,9 +2652,9 @@  static u32 ilk_compute_fbc_wm(const struct intel_crtc_state *crtc_state,
 static unsigned int
 ilk_display_fifo_size(const struct drm_i915_private *dev_priv)
 {
-	if (INTEL_GEN(dev_priv) >= 8)
+	if (DISPLAY_VER(dev_priv) >= 8)
 		return 3072;
-	else if (INTEL_GEN(dev_priv) >= 7)
+	else if (DISPLAY_VER(dev_priv) >= 7)
 		return 768;
 	else
 		return 512;
@@ -2664,10 +2664,10 @@  static unsigned int
 ilk_plane_wm_reg_max(const struct drm_i915_private *dev_priv,
 		     int level, bool is_sprite)
 {
-	if (INTEL_GEN(dev_priv) >= 8)
+	if (DISPLAY_VER(dev_priv) >= 8)
 		/* BDW primary/sprite plane watermarks */
 		return level == 0 ? 255 : 2047;
-	else if (INTEL_GEN(dev_priv) >= 7)
+	else if (DISPLAY_VER(dev_priv) >= 7)
 		/* IVB/HSW primary/sprite plane watermarks */
 		return level == 0 ? 127 : 1023;
 	else if (!is_sprite)
@@ -2681,7 +2681,7 @@  ilk_plane_wm_reg_max(const struct drm_i915_private *dev_priv,
 static unsigned int
 ilk_cursor_wm_reg_max(const struct drm_i915_private *dev_priv, int level)
 {
-	if (INTEL_GEN(dev_priv) >= 7)
+	if (DISPLAY_VER(dev_priv) >= 7)
 		return level == 0 ? 63 : 255;
 	else
 		return level == 0 ? 31 : 63;
@@ -2689,7 +2689,7 @@  ilk_cursor_wm_reg_max(const struct drm_i915_private *dev_priv, int level)
 
 static unsigned int ilk_fbc_wm_reg_max(const struct drm_i915_private *dev_priv)
 {
-	if (INTEL_GEN(dev_priv) >= 8)
+	if (DISPLAY_VER(dev_priv) >= 8)
 		return 31;
 	else
 		return 15;
@@ -2717,7 +2717,7 @@  static unsigned int ilk_plane_wm_max(const struct drm_i915_private *dev_priv,
 		 * FIFO size is only half of the self
 		 * refresh FIFO size on ILK/SNB.
 		 */
-		if (INTEL_GEN(dev_priv) <= 6)
+		if (DISPLAY_VER(dev_priv) <= 6)
 			fifo_size /= 2;
 	}
 
@@ -2852,7 +2852,7 @@  static void intel_read_wm_latency(struct drm_i915_private *dev_priv,
 {
 	struct intel_uncore *uncore = &dev_priv->uncore;
 
-	if (INTEL_GEN(dev_priv) >= 9) {
+	if (DISPLAY_VER(dev_priv) >= 9) {
 		u32 val;
 		int ret, i;
 		int level, max_level = ilk_wm_max_level(dev_priv);
@@ -2944,14 +2944,14 @@  static void intel_read_wm_latency(struct drm_i915_private *dev_priv,
 		wm[2] = (sskpd >> 12) & 0xFF;
 		wm[3] = (sskpd >> 20) & 0x1FF;
 		wm[4] = (sskpd >> 32) & 0x1FF;
-	} else if (INTEL_GEN(dev_priv) >= 6) {
+	} else if (DISPLAY_VER(dev_priv) >= 6) {
 		u32 sskpd = intel_uncore_read(uncore, MCH_SSKPD);
 
 		wm[0] = (sskpd >> SSKPD_WM0_SHIFT) & SSKPD_WM_MASK;
 		wm[1] = (sskpd >> SSKPD_WM1_SHIFT) & SSKPD_WM_MASK;
 		wm[2] = (sskpd >> SSKPD_WM2_SHIFT) & SSKPD_WM_MASK;
 		wm[3] = (sskpd >> SSKPD_WM3_SHIFT) & SSKPD_WM_MASK;
-	} else if (INTEL_GEN(dev_priv) >= 5) {
+	} else if (DISPLAY_VER(dev_priv) >= 5) {
 		u32 mltr = intel_uncore_read(uncore, MLTR_ILK);
 
 		/* ILK primary LP0 latency is 700 ns */
@@ -2967,7 +2967,7 @@  static void intel_fixup_spr_wm_latency(struct drm_i915_private *dev_priv,
 				       u16 wm[5])
 {
 	/* ILK sprite LP0 latency is 1300 ns */
-	if (IS_GEN(dev_priv, 5))
+	if (DISPLAY_VER(dev_priv) == 5)
 		wm[0] = 13;
 }
 
@@ -2975,18 +2975,18 @@  static void intel_fixup_cur_wm_latency(struct drm_i915_private *dev_priv,
 				       u16 wm[5])
 {
 	/* ILK cursor LP0 latency is 1300 ns */
-	if (IS_GEN(dev_priv, 5))
+	if (DISPLAY_VER(dev_priv) == 5)
 		wm[0] = 13;
 }
 
 int ilk_wm_max_level(const struct drm_i915_private *dev_priv)
 {
 	/* how many WM levels are we expecting */
-	if (INTEL_GEN(dev_priv) >= 9)
+	if (DISPLAY_VER(dev_priv) >= 9)
 		return 7;
 	else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
 		return 4;
-	else if (INTEL_GEN(dev_priv) >= 6)
+	else if (DISPLAY_VER(dev_priv) >= 6)
 		return 3;
 	else
 		return 2;
@@ -3012,7 +3012,7 @@  static void intel_print_wm_latency(struct drm_i915_private *dev_priv,
 		 * - latencies are in us on gen9.
 		 * - before then, WM1+ latency values are in 0.5us units
 		 */
-		if (INTEL_GEN(dev_priv) >= 9)
+		if (DISPLAY_VER(dev_priv) >= 9)
 			latency *= 10;
 		else if (level > 0)
 			latency *= 5;
@@ -3105,7 +3105,7 @@  static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv)
 	intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency);
 	intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
 
-	if (IS_GEN(dev_priv, 6)) {
+	if (DISPLAY_VER(dev_priv) == 6) {
 		snb_wm_latency_quirk(dev_priv);
 		snb_wm_lp3_irq_quirk(dev_priv);
 	}
@@ -3176,7 +3176,7 @@  static int ilk_compute_pipe_wm(struct intel_crtc_state *crtc_state)
 	usable_level = max_level;
 
 	/* ILK/SNB: LP2+ watermarks only w/o sprites */
-	if (INTEL_GEN(dev_priv) <= 6 && pipe_wm->sprites_enabled)
+	if (DISPLAY_VER(dev_priv) <= 6 && pipe_wm->sprites_enabled)
 		usable_level = 1;
 
 	/* ILK/SNB/IVB: LP1+ watermarks only w/o scaling */
@@ -3318,12 +3318,12 @@  static void ilk_wm_merge(struct drm_i915_private *dev_priv,
 	int last_enabled_level = max_level;
 
 	/* ILK/SNB/IVB: LP1+ watermarks only w/ single pipe */
-	if ((INTEL_GEN(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
+	if ((DISPLAY_VER(dev_priv) <= 6 || IS_IVYBRIDGE(dev_priv)) &&
 	    config->num_pipes_active > 1)
 		last_enabled_level = 0;
 
 	/* ILK: FBC WM must be disabled always */
-	merged->fbc_wm_enabled = INTEL_GEN(dev_priv) >= 6;
+	merged->fbc_wm_enabled = DISPLAY_VER(dev_priv) >= 6;
 
 	/* merge each WM1+ level */
 	for (level = 1; level <= max_level; level++) {
@@ -3354,7 +3354,7 @@  static void ilk_wm_merge(struct drm_i915_private *dev_priv,
 	 * What we should check here is whether FBC can be
 	 * enabled sometime later.
 	 */
-	if (IS_GEN(dev_priv, 5) && !merged->fbc_wm_enabled &&
+	if (DISPLAY_VER(dev_priv) == 5 && !merged->fbc_wm_enabled &&
 	    intel_fbc_is_active(dev_priv)) {
 		for (level = 2; level <= max_level; level++) {
 			struct intel_wm_level *wm = &merged->wm[level];
@@ -3411,7 +3411,7 @@  static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
 		if (r->enable)
 			results->wm_lp[wm_lp - 1] |= WM1_LP_SR_EN;
 
-		if (INTEL_GEN(dev_priv) >= 8)
+		if (DISPLAY_VER(dev_priv) >= 8)
 			results->wm_lp[wm_lp - 1] |=
 				r->fbc_val << WM1_LP_FBC_SHIFT_BDW;
 		else
@@ -3422,7 +3422,7 @@  static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
 		 * Always set WM1S_LP_EN when spr_val != 0, even if the
 		 * level is disabled. Doing otherwise could cause underruns.
 		 */
-		if (INTEL_GEN(dev_priv) <= 6 && r->spr_val) {
+		if (DISPLAY_VER(dev_priv) <= 6 && r->spr_val) {
 			drm_WARN_ON(&dev_priv->drm, wm_lp != 1);
 			results->wm_lp_spr[wm_lp - 1] = WM1S_LP_EN | r->spr_val;
 		} else
@@ -3612,7 +3612,7 @@  static void ilk_write_wm_values(struct drm_i915_private *dev_priv,
 	    previous->wm_lp_spr[0] != results->wm_lp_spr[0])
 		intel_uncore_write(&dev_priv->uncore, WM1S_LP_ILK, results->wm_lp_spr[0]);
 
-	if (INTEL_GEN(dev_priv) >= 7) {
+	if (DISPLAY_VER(dev_priv) >= 7) {
 		if (dirty & WM_DIRTY_LP(2) && previous->wm_lp_spr[1] != results->wm_lp_spr[1])
 			intel_uncore_write(&dev_priv->uncore, WM2S_LP_IVB, results->wm_lp_spr[1]);
 		if (dirty & WM_DIRTY_LP(3) && previous->wm_lp_spr[2] != results->wm_lp_spr[2])
@@ -3660,14 +3660,14 @@  static bool skl_needs_memory_bw_wa(struct drm_i915_private *dev_priv)
 static bool
 intel_has_sagv(struct drm_i915_private *dev_priv)
 {
-	return (IS_GEN9_BC(dev_priv) || INTEL_GEN(dev_priv) >= 10) &&
+	return (IS_GEN9_BC(dev_priv) || DISPLAY_VER(dev_priv) >= 10) &&
 		dev_priv->sagv_status != I915_SAGV_NOT_CONTROLLED;
 }
 
 static void
 skl_setup_sagv_block_time(struct drm_i915_private *dev_priv)
 {
-	if (INTEL_GEN(dev_priv) >= 12) {
+	if (DISPLAY_VER(dev_priv) >= 12) {
 		u32 val = 0;
 		int ret;
 
@@ -3680,17 +3680,17 @@  skl_setup_sagv_block_time(struct drm_i915_private *dev_priv)
 		}
 
 		drm_dbg(&dev_priv->drm, "Couldn't read SAGV block time!\n");
-	} else if (IS_GEN(dev_priv, 11)) {
+	} else if (DISPLAY_VER(dev_priv) == 11) {
 		dev_priv->sagv_block_time_us = 10;
 		return;
-	} else if (IS_GEN(dev_priv, 10)) {
+	} else if (DISPLAY_VER(dev_priv) == 10) {
 		dev_priv->sagv_block_time_us = 20;
 		return;
-	} else if (IS_GEN(dev_priv, 9)) {
+	} else if (DISPLAY_VER(dev_priv) == 9) {
 		dev_priv->sagv_block_time_us = 30;
 		return;
 	} else {
-		MISSING_CASE(INTEL_GEN(dev_priv));
+		MISSING_CASE(DISPLAY_VER(dev_priv));
 	}
 
 	/* Default to an unusable block time */
@@ -3797,7 +3797,7 @@  void intel_sagv_pre_plane_update(struct intel_atomic_state *state)
 	if (!new_bw_state)
 		return;
 
-	if (INTEL_GEN(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv, new_bw_state)) {
+	if (DISPLAY_VER(dev_priv) < 11 && !intel_can_enable_sagv(dev_priv, new_bw_state)) {
 		intel_disable_sagv(dev_priv);
 		return;
 	}
@@ -3848,7 +3848,7 @@  void intel_sagv_post_plane_update(struct intel_atomic_state *state)
 	if (!new_bw_state)
 		return;
 
-	if (INTEL_GEN(dev_priv) < 11 && intel_can_enable_sagv(dev_priv, new_bw_state)) {
+	if (DISPLAY_VER(dev_priv) < 11 && intel_can_enable_sagv(dev_priv, new_bw_state)) {
 		intel_enable_sagv(dev_priv);
 		return;
 	}
@@ -3936,7 +3936,7 @@  static bool intel_crtc_can_enable_sagv(const struct intel_crtc_state *crtc_state
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 
-	if (INTEL_GEN(dev_priv) >= 12)
+	if (DISPLAY_VER(dev_priv) >= 12)
 		return tgl_crtc_can_enable_sagv(crtc_state);
 	else
 		return skl_crtc_can_enable_sagv(crtc_state);
@@ -3945,7 +3945,7 @@  static bool intel_crtc_can_enable_sagv(const struct intel_crtc_state *crtc_state
 bool intel_can_enable_sagv(struct drm_i915_private *dev_priv,
 			   const struct intel_bw_state *bw_state)
 {
-	if (INTEL_GEN(dev_priv) < 11 &&
+	if (DISPLAY_VER(dev_priv) < 11 &&
 	    bw_state->active_pipes && !is_power_of_2(bw_state->active_pipes))
 		return false;
 
@@ -3998,7 +3998,7 @@  static int intel_compute_sagv_mask(struct intel_atomic_state *state)
 		 * latter from the plane commit hooks (especially in the legacy
 		 * cursor case)
 		 */
-		pipe_wm->use_sagv_wm = INTEL_GEN(dev_priv) >= 12 &&
+		pipe_wm->use_sagv_wm = DISPLAY_VER(dev_priv) >= 12 &&
 				       intel_can_enable_sagv(dev_priv, new_bw_state);
 	}
 
@@ -4022,7 +4022,7 @@  static int intel_dbuf_size(struct drm_i915_private *dev_priv)
 
 	drm_WARN_ON(&dev_priv->drm, ddb_size == 0);
 
-	if (INTEL_GEN(dev_priv) < 11)
+	if (DISPLAY_VER(dev_priv) < 11)
 		return ddb_size - 4; /* 4 blocks for bypass path allocation */
 
 	return ddb_size;
@@ -4277,7 +4277,7 @@  skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
 					      val & PLANE_CTL_ORDER_RGBX,
 					      val & PLANE_CTL_ALPHA_MASK);
 
-	if (INTEL_GEN(dev_priv) >= 11) {
+	if (DISPLAY_VER(dev_priv) >= 11) {
 		val = intel_uncore_read(&dev_priv->uncore, PLANE_BUF_CFG(pipe, plane_id));
 		skl_ddb_entry_init_from_hw(dev_priv, ddb_y, val);
 	} else {
@@ -4601,9 +4601,9 @@  static u8 skl_compute_dbuf_slices(struct intel_crtc *crtc, u8 active_pipes)
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 	enum pipe pipe = crtc->pipe;
 
-	if (IS_GEN(dev_priv, 12))
+	if (DISPLAY_VER(dev_priv) == 12)
 		return tgl_compute_dbuf_slices(pipe, active_pipes);
-	else if (IS_GEN(dev_priv, 11))
+	else if (DISPLAY_VER(dev_priv) == 11)
 		return icl_compute_dbuf_slices(pipe, active_pipes);
 	/*
 	 * For anything else just return one slice yet.
@@ -4796,7 +4796,7 @@  skl_allocate_plane_ddb(struct intel_atomic_state *state,
 	if (!crtc_state->hw.active)
 		return 0;
 
-	if (INTEL_GEN(dev_priv) >= 11)
+	if (DISPLAY_VER(dev_priv) >= 11)
 		total_data_rate =
 			icl_get_total_relative_data_rate(state, crtc);
 	else
@@ -4910,7 +4910,7 @@  skl_allocate_plane_ddb(struct intel_atomic_state *state,
 
 		/* Gen11+ uses a separate plane for UV watermarks */
 		drm_WARN_ON(&dev_priv->drm,
-			    INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
+			    DISPLAY_VER(dev_priv) >= 11 && uv_total[plane_id]);
 
 		/* Leave disabled planes at (0,0) */
 		if (total[plane_id]) {
@@ -4957,7 +4957,7 @@  skl_allocate_plane_ddb(struct intel_atomic_state *state,
 			 * Wa_1408961008:icl, ehl
 			 * Underruns with WM1+ disabled
 			 */
-			if (IS_GEN(dev_priv, 11) &&
+			if (DISPLAY_VER(dev_priv) == 11 &&
 			    level == 1 && wm->wm[0].plane_en) {
 				wm->wm[level].plane_res_b = wm->wm[0].plane_res_b;
 				wm->wm[level].plane_res_l = wm->wm[0].plane_res_l;
@@ -5006,7 +5006,7 @@  skl_wm_method1(const struct drm_i915_private *dev_priv, u32 pixel_rate,
 	wm_intermediate_val = latency * pixel_rate * cpp;
 	ret = div_fixed16(wm_intermediate_val, 1000 * dbuf_block_size);
 
-	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
 		ret = add_fixed16_u32(ret, 1);
 
 	return ret;
@@ -5086,7 +5086,7 @@  skl_compute_wm_params(const struct intel_crtc_state *crtc_state,
 	wp->cpp = format->cpp[color_plane];
 	wp->plane_pixel_rate = plane_pixel_rate;
 
-	if (INTEL_GEN(dev_priv) >= 11 &&
+	if (DISPLAY_VER(dev_priv) >= 11 &&
 	    modifier == I915_FORMAT_MOD_Yf_TILED  && wp->cpp == 1)
 		wp->dbuf_block_size = 256;
 	else
@@ -5120,7 +5120,7 @@  skl_compute_wm_params(const struct intel_crtc_state *crtc_state,
 					   wp->y_min_scanlines,
 					   wp->dbuf_block_size);
 
-		if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+		if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
 			interm_pbpl++;
 
 		wp->plane_blocks_per_line = div_fixed16(interm_pbpl,
@@ -5130,7 +5130,7 @@  skl_compute_wm_params(const struct intel_crtc_state *crtc_state,
 					   wp->dbuf_block_size);
 
 		if (!wp->x_tiled ||
-		    INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+		    DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
 			interm_pbpl++;
 
 		wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
@@ -5169,7 +5169,7 @@  skl_compute_plane_wm_params(const struct intel_crtc_state *crtc_state,
 
 static bool skl_wm_has_lines(struct drm_i915_private *dev_priv, int level)
 {
-	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+	if (DISPLAY_VER(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
 		return true;
 
 	/* The number of lines are ignored for the level 0 watermark. */
@@ -5222,7 +5222,7 @@  static void skl_compute_plane_wm(const struct intel_crtc_state *crtc_state,
 		     (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) {
 			selected_result = method2;
 		} else if (latency >= wp->linetime_us) {
-			if (IS_GEN(dev_priv, 9) &&
+			if (DISPLAY_VER(dev_priv) == 9 &&
 			    !IS_GEMINILAKE(dev_priv))
 				selected_result = min_fixed16(method1, method2);
 			else
@@ -5263,7 +5263,7 @@  static void skl_compute_plane_wm(const struct intel_crtc_state *crtc_state,
 		}
 	}
 
-	if (INTEL_GEN(dev_priv) >= 11) {
+	if (DISPLAY_VER(dev_priv) >= 11) {
 		if (wp->y_tiled) {
 			int extra_lines;
 
@@ -5302,7 +5302,7 @@  static void skl_compute_plane_wm(const struct intel_crtc_state *crtc_state,
 	result->min_ddb_alloc = max(min_ddb_alloc, res_blocks) + 1;
 	result->plane_en = true;
 
-	if (INTEL_GEN(dev_priv) < 12)
+	if (DISPLAY_VER(dev_priv) < 12)
 		result->can_sagv = latency >= dev_priv->sagv_block_time_us;
 }
 
@@ -5359,7 +5359,7 @@  static void skl_compute_transition_wm(struct drm_i915_private *dev_priv,
 	if (IS_GEN9_BC(dev_priv) || IS_BROXTON(dev_priv))
 		return;
 
-	if (INTEL_GEN(dev_priv) >= 11)
+	if (DISPLAY_VER(dev_priv) >= 11)
 		trans_min = 4;
 	else
 		trans_min = 14;
@@ -5422,7 +5422,7 @@  static int skl_build_plane_wm_single(struct intel_crtc_state *crtc_state,
 	skl_compute_transition_wm(dev_priv, &wm->trans_wm,
 				  &wm->wm[0], &wm_params);
 
-	if (INTEL_GEN(dev_priv) >= 12) {
+	if (DISPLAY_VER(dev_priv) >= 12) {
 		tgl_compute_sagv_wm(crtc_state, &wm_params, wm);
 
 		skl_compute_transition_wm(dev_priv, &wm->sagv.trans_wm,
@@ -5544,7 +5544,7 @@  static int skl_build_pipe_wm(struct intel_atomic_state *state,
 		if (plane->pipe != crtc->pipe)
 			continue;
 
-		if (INTEL_GEN(dev_priv) >= 11)
+		if (DISPLAY_VER(dev_priv) >= 11)
 			ret = icl_build_plane_wm(crtc_state, plane_state);
 		else
 			ret = skl_build_plane_wm(crtc_state, plane_state);
@@ -5605,7 +5605,7 @@  void skl_write_plane_wm(struct intel_plane *plane,
 	skl_write_wm_level(dev_priv, PLANE_WM_TRANS(pipe, plane_id),
 			   skl_plane_trans_wm(pipe_wm, plane_id));
 
-	if (INTEL_GEN(dev_priv) >= 11) {
+	if (DISPLAY_VER(dev_priv) >= 11) {
 		skl_ddb_entry_write(dev_priv,
 				    PLANE_BUF_CFG(pipe, plane_id), ddb_y);
 		return;
@@ -6135,7 +6135,7 @@  static void ilk_program_watermarks(struct drm_i915_private *dev_priv)
 	ilk_wm_merge(dev_priv, &config, &max, &lp_wm_1_2);
 
 	/* 5/6 split only in single pipe config on IVB+ */
-	if (INTEL_GEN(dev_priv) >= 7 &&
+	if (DISPLAY_VER(dev_priv) >= 7 &&
 	    config.num_pipes_active == 1 && config.sprites_enabled) {
 		ilk_compute_wm_maximums(dev_priv, 1, &config, INTEL_DDB_PART_5_6, &max);
 		ilk_wm_merge(dev_priv, &config, &max, &lp_wm_5_6);
@@ -6221,7 +6221,7 @@  void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
 
 		skl_wm_level_from_reg_val(val, &wm->trans_wm);
 
-		if (INTEL_GEN(dev_priv) >= 12) {
+		if (DISPLAY_VER(dev_priv) >= 12) {
 			wm->sagv.wm0 = wm->wm[0];
 			wm->sagv.trans_wm = wm->trans_wm;
 		}
@@ -6748,7 +6748,7 @@  void ilk_wm_get_hw_state(struct drm_i915_private *dev_priv)
 	hw->wm_lp[2] = intel_uncore_read(&dev_priv->uncore, WM3_LP_ILK);
 
 	hw->wm_lp_spr[0] = intel_uncore_read(&dev_priv->uncore, WM1S_LP_ILK);
-	if (INTEL_GEN(dev_priv) >= 7) {
+	if (DISPLAY_VER(dev_priv) >= 7) {
 		hw->wm_lp_spr[1] = intel_uncore_read(&dev_priv->uncore, WM2S_LP_IVB);
 		hw->wm_lp_spr[2] = intel_uncore_read(&dev_priv->uncore, WM3S_LP_IVB);
 	}
@@ -7649,15 +7649,15 @@  void intel_init_pm(struct drm_i915_private *dev_priv)
 		skl_setup_sagv_block_time(dev_priv);
 
 	/* For FIFO watermark updates */
-	if (INTEL_GEN(dev_priv) >= 9) {
+	if (DISPLAY_VER(dev_priv) >= 9) {
 		skl_setup_wm_latency(dev_priv);
 		dev_priv->display.compute_global_watermarks = skl_compute_wm;
 	} else if (HAS_PCH_SPLIT(dev_priv)) {
 		ilk_setup_wm_latency(dev_priv);
 
-		if ((IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[1] &&
+		if ((DISPLAY_VER(dev_priv) == 5 && dev_priv->wm.pri_latency[1] &&
 		     dev_priv->wm.spr_latency[1] && dev_priv->wm.cur_latency[1]) ||
-		    (!IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[0] &&
+		    (DISPLAY_VER(dev_priv) != 5 && dev_priv->wm.pri_latency[0] &&
 		     dev_priv->wm.spr_latency[0] && dev_priv->wm.cur_latency[0])) {
 			dev_priv->display.compute_pipe_wm = ilk_compute_pipe_wm;
 			dev_priv->display.compute_intermediate_wm =
@@ -7700,12 +7700,12 @@  void intel_init_pm(struct drm_i915_private *dev_priv)
 			dev_priv->display.update_wm = NULL;
 		} else
 			dev_priv->display.update_wm = pnv_update_wm;
-	} else if (IS_GEN(dev_priv, 4)) {
+	} else if (DISPLAY_VER(dev_priv) == 4) {
 		dev_priv->display.update_wm = i965_update_wm;
-	} else if (IS_GEN(dev_priv, 3)) {
+	} else if (DISPLAY_VER(dev_priv) == 3) {
 		dev_priv->display.update_wm = i9xx_update_wm;
 		dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
-	} else if (IS_GEN(dev_priv, 2)) {
+	} else if (DISPLAY_VER(dev_priv) == 2) {
 		if (INTEL_NUM_PIPES(dev_priv) == 1) {
 			dev_priv->display.update_wm = i845_update_wm;
 			dev_priv->display.get_fifo_size = i845_get_fifo_size;