diff mbox series

[v3,3/3] drm/i915/display: Convert POWER_DOMAIN_*() to functions

Message ID 20250217203722.87152-4-gustavo.sousa@intel.com (mailing list archive)
State New
Headers show
Series Improve type-safety on POWER_DOMAIN_*() macros | expand

Commit Message

Gustavo Sousa Feb. 17, 2025, 8:34 p.m. UTC
We already have other functions to get power domain for other things
(i.e. intel_display_power_*_domain()). Convert POWER_DOMAIN_*() macros
to the same standard.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
---

Note: Maybe this patch could be squashed with the previous one.

 drivers/gpu/drm/i915/display/i9xx_plane.c     |  2 +-
 drivers/gpu/drm/i915/display/intel_cmtg.c     |  2 +-
 drivers/gpu/drm/i915/display/intel_cursor.c   |  4 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      | 10 ++---
 drivers/gpu/drm/i915/display/intel_display.c  | 39 ++++++++++++-------
 .../gpu/drm/i915/display/intel_display_irq.c  | 18 +++++----
 .../drm/i915/display/intel_display_power.c    | 21 ++++++++++
 .../drm/i915/display/intel_display_power.h    | 16 ++++----
 drivers/gpu/drm/i915/display/intel_pipe_crc.c |  2 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |  6 +--
 drivers/gpu/drm/i915/display/intel_vdsc.c     |  3 +-
 .../drm/i915/display/skl_universal_plane.c    |  2 +-
 drivers/gpu/drm/i915/display/skl_watermark.c  |  2 +-
 13 files changed, 82 insertions(+), 45 deletions(-)

Comments

Ville Syrjälä Feb. 17, 2025, 8:46 p.m. UTC | #1
On Mon, Feb 17, 2025 at 05:34:28PM -0300, Gustavo Sousa wrote:
> We already have other functions to get power domain for other things
> (i.e. intel_display_power_*_domain()). Convert POWER_DOMAIN_*() macros
> to the same standard.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
> ---
> 
> Note: Maybe this patch could be squashed with the previous one.
> 
>  drivers/gpu/drm/i915/display/i9xx_plane.c     |  2 +-
>  drivers/gpu/drm/i915/display/intel_cmtg.c     |  2 +-
>  drivers/gpu/drm/i915/display/intel_cursor.c   |  4 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c      | 10 ++---
>  drivers/gpu/drm/i915/display/intel_display.c  | 39 ++++++++++++-------
>  .../gpu/drm/i915/display/intel_display_irq.c  | 18 +++++----
>  .../drm/i915/display/intel_display_power.c    | 21 ++++++++++
>  .../drm/i915/display/intel_display_power.h    | 16 ++++----
>  drivers/gpu/drm/i915/display/intel_pipe_crc.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c   |  6 +--
>  drivers/gpu/drm/i915/display/intel_vdsc.c     |  3 +-
>  .../drm/i915/display/skl_universal_plane.c    |  2 +-
>  drivers/gpu/drm/i915/display/skl_watermark.c  |  2 +-
>  13 files changed, 82 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
> index aef8d8b7ea85..504599a20b8f 100644
> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> @@ -697,7 +697,7 @@ static bool i9xx_plane_get_hw_state(struct intel_plane *plane,
>  	 * but that's only the case for gen2-4 which don't have any
>  	 * display power wells.
>  	 */
> -	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, plane->pipe);

The naming feels a bit awkward. If we want to stick to the full
intel_display_power_ namespace then maybe these should be
intel_display_power_domain_foo() instead?

An alternative would be just something like intel_pipe_power_domain(),
but obviously that doesn't have the full namespace.

>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.c b/drivers/gpu/drm/i915/display/intel_cmtg.c
> index 07d7f4e8f60f..6b8b20e101a4 100644
> --- a/drivers/gpu/drm/i915/display/intel_cmtg.c
> +++ b/drivers/gpu/drm/i915/display/intel_cmtg.c
> @@ -92,7 +92,7 @@ static bool intel_cmtg_transcoder_is_secondary(struct intel_display *display,
>  	if (!HAS_TRANSCODER(display, trans))
>  		return false;
>  
> -	power_domain = POWER_DOMAIN_TRANSCODER(trans);
> +	power_domain = intel_display_power_transcoder_domain(display, trans);
>  
>  	with_intel_display_power_if_enabled(display, power_domain, wakeref)
>  		val = intel_de_read(display, TRANS_DDI_FUNC_CTL2(display, trans));
> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
> index f31efac89e95..85d406335b6f 100644
> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
> @@ -336,7 +336,7 @@ static bool i845_cursor_get_hw_state(struct intel_plane *plane,
>  	intel_wakeref_t wakeref;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(PIPE_A);
> +	power_domain = intel_display_power_pipe_domain(display, PIPE_A);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> @@ -746,7 +746,7 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
>  	 * but that's only the case for gen2-3 which don't have any
>  	 * display power wells.
>  	 */
> -	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 5082f38b0a02..6fbf1583ca99 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -852,11 +852,12 @@ static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder,
>  
>  	for_each_pipe(dev_priv, p) {
>  		enum transcoder cpu_transcoder = (enum transcoder)p;
> +		enum intel_display_power_domain power_domain;
>  		u32 port_mask, ddi_select, ddi_mode;
>  		intel_wakeref_t trans_wakeref;
>  
> -		trans_wakeref = intel_display_power_get_if_enabled(display,
> -								   POWER_DOMAIN_TRANSCODER(cpu_transcoder));
> +		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
> +		trans_wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  		if (!trans_wakeref)
>  			continue;
>  
> @@ -870,8 +871,7 @@ static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder,
>  
>  		tmp = intel_de_read(dev_priv,
>  				    TRANS_DDI_FUNC_CTL(dev_priv, cpu_transcoder));
> -		intel_display_power_put(display, POWER_DOMAIN_TRANSCODER(cpu_transcoder),
> -					trans_wakeref);
> +		intel_display_power_put(display, power_domain, trans_wakeref);
>  
>  		if ((tmp & port_mask) != ddi_select)
>  			continue;
> @@ -3950,7 +3950,7 @@ static void bdw_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
>  		enum intel_display_power_domain power_domain;
>  		intel_wakeref_t trans_wakeref;
>  
> -		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
> +		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>  		trans_wakeref = intel_display_power_get_if_enabled(display,
>  								   power_domain);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 065fdf6dbb88..1b45342bc986 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -429,7 +429,7 @@ void assert_transcoder(struct intel_display *display,
>  	if (display->platform.i830)
>  		state = true;
>  
> -	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
> +	power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (wakeref) {
>  		u32 val = intel_de_read(display,
> @@ -2013,6 +2013,7 @@ intel_aux_power_domain(struct intel_digital_port *dig_port)
>  static void get_crtc_power_domains(struct intel_crtc_state *crtc_state,
>  				   struct intel_power_domain_mask *mask)
>  {
> +	struct intel_display *display = to_intel_display(crtc_state);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> @@ -2024,11 +2025,11 @@ static void get_crtc_power_domains(struct intel_crtc_state *crtc_state,
>  	if (!crtc_state->hw.active)
>  		return;
>  
> -	set_bit(POWER_DOMAIN_PIPE(pipe), mask->bits);
> -	set_bit(POWER_DOMAIN_TRANSCODER(cpu_transcoder), mask->bits);
> +	set_bit(intel_display_power_pipe_domain(display, pipe), mask->bits);
> +	set_bit(intel_display_power_transcoder_domain(display, cpu_transcoder), mask->bits);
>  	if (crtc_state->pch_pfit.enabled ||
>  	    crtc_state->pch_pfit.force_thru)
> -		set_bit(POWER_DOMAIN_PIPE_PANEL_FITTER(pipe), mask->bits);
> +		set_bit(intel_display_power_pipe_panel_fitter_domain(display, pipe), mask->bits);
>  
>  	drm_for_each_encoder_mask(encoder, &dev_priv->drm,
>  				  crtc_state->uapi.encoder_mask) {
> @@ -3113,7 +3114,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
>  	u32 tmp;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> @@ -3497,7 +3498,7 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
>  	u32 tmp;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> @@ -3590,7 +3591,7 @@ static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
>  	intel_wakeref_t wakeref;
>  	u32 tmp = 0;
>  
> -	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
> +	power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>  
>  	with_intel_display_power_if_enabled(display, power_domain, wakeref)
>  		tmp = intel_de_read(dev_priv,
> @@ -3617,7 +3618,7 @@ static void enabled_uncompressed_joiner_pipes(struct intel_display *display,
>  		enum pipe pipe = crtc->pipe;
>  		intel_wakeref_t wakeref;
>  
> -		power_domain = POWER_DOMAIN_PIPE(pipe);
> +		power_domain = intel_display_power_pipe_domain(display, pipe);
>  		with_intel_display_power_if_enabled(display, power_domain, wakeref) {
>  			u32 tmp = intel_de_read(display, ICL_PIPE_DSS_CTL1(pipe));
>  
> @@ -3884,7 +3885,7 @@ static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
>  		enum pipe trans_pipe;
>  		u32 tmp = 0;
>  
> -		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
> +		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>  		with_intel_display_power_if_enabled(display, power_domain, wakeref)
>  			tmp = intel_de_read(dev_priv,
>  					    TRANS_DDI_FUNC_CTL(dev_priv, cpu_transcoder));
> @@ -3973,6 +3974,7 @@ static bool hsw_get_transcoder_state(struct intel_crtc *crtc,
>  	struct intel_display *display = to_intel_display(crtc);
>  	struct drm_device *dev = crtc->base.dev;
>  	struct drm_i915_private *dev_priv = to_i915(dev);
> +	enum intel_display_power_domain power_domain;
>  	unsigned long enabled_transcoders;
>  	u32 tmp;
>  
> @@ -3989,8 +3991,9 @@ static bool hsw_get_transcoder_state(struct intel_crtc *crtc,
>  	 */
>  	pipe_config->cpu_transcoder = ffs(enabled_transcoders) - 1;
>  
> -	if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set,
> -						       POWER_DOMAIN_TRANSCODER(pipe_config->cpu_transcoder)))
> +	power_domain = intel_display_power_transcoder_domain(display, pipe_config->cpu_transcoder);
> +
> +	if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set, power_domain))
>  		return false;
>  
>  	if (hsw_panel_transcoders(dev_priv) & BIT(pipe_config->cpu_transcoder)) {
> @@ -4013,6 +4016,7 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>  {
>  	struct intel_display *display = to_intel_display(crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	enum intel_display_power_domain power_domain;
>  	enum transcoder cpu_transcoder;
>  	enum port port;
>  	u32 tmp;
> @@ -4023,8 +4027,10 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>  		else
>  			cpu_transcoder = TRANSCODER_DSI_C;
>  
> +		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
> +
>  		if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set,
> -							       POWER_DOMAIN_TRANSCODER(cpu_transcoder)))
> +							       power_domain))
>  			continue;
>  
>  		/*
> @@ -4073,11 +4079,14 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>  {
>  	struct intel_display *display = to_intel_display(crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	enum intel_display_power_domain power_domain;
>  	bool active;
>  	u32 tmp;
>  
> +	power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
> +
>  	if (!intel_display_power_get_in_set_if_enabled(display, &crtc->hw_readout_power_domains,
> -						       POWER_DOMAIN_PIPE(crtc->pipe)))
> +						       power_domain))
>  		return false;
>  
>  	pipe_config->shared_dpll = NULL;
> @@ -4128,8 +4137,10 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>  		pipe_config->ips_linetime =
>  			REG_FIELD_GET(HSW_IPS_LINETIME_MASK, tmp);
>  
> +	power_domain = intel_display_power_pipe_panel_fitter_domain(display, crtc->pipe);
> +
>  	if (intel_display_power_get_in_set_if_enabled(display, &crtc->hw_readout_power_domains,
> -						      POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe))) {
> +						      power_domain)) {
>  		if (DISPLAY_VER(dev_priv) >= 9)
>  			skl_scaler_get_config(pipe_config);
>  		else
> diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
> index 880eaed83cd5..1fd17aad3a65 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
> @@ -1617,10 +1617,14 @@ void gen8_display_irq_reset(struct drm_i915_private *dev_priv)
>  	intel_de_write(display, EDP_PSR_IMR, 0xffffffff);
>  	intel_de_write(display, EDP_PSR_IIR, 0xffffffff);
>  
> -	for_each_pipe(dev_priv, pipe)
> -		if (intel_display_power_is_enabled(display,
> -						   POWER_DOMAIN_PIPE(pipe)))
> +	for_each_pipe(dev_priv, pipe) {
> +		enum intel_display_power_domain power_domain;
> +
> +		power_domain = intel_display_power_pipe_domain(display, pipe);
> +
> +		if (intel_display_power_is_enabled(display, power_domain))
>  			intel_display_irq_regs_reset(display, GEN8_DE_PIPE_IRQ_REGS(pipe));
> +	}
>  
>  	intel_display_irq_regs_reset(display, GEN8_DE_PORT_IRQ_REGS);
>  	intel_display_irq_regs_reset(display, GEN8_DE_MISC_IRQ_REGS);
> @@ -1644,7 +1648,7 @@ void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
>  		for_each_cpu_transcoder_masked(dev_priv, trans, trans_mask) {
>  			enum intel_display_power_domain domain;
>  
> -			domain = POWER_DOMAIN_TRANSCODER(trans);
> +			domain = intel_display_power_transcoder_domain(display, trans);
>  			if (!intel_display_power_is_enabled(display, domain))
>  				continue;
>  
> @@ -1662,7 +1666,7 @@ void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
>  
>  	for_each_pipe(dev_priv, pipe)
>  		if (intel_display_power_is_enabled(display,
> -						   POWER_DOMAIN_PIPE(pipe)))
> +						   intel_display_power_pipe_domain(display, pipe)))
>  			intel_display_irq_regs_reset(display, GEN8_DE_PIPE_IRQ_REGS(pipe));
>  
>  	intel_display_irq_regs_reset(display, GEN8_DE_PORT_IRQ_REGS);
> @@ -1887,7 +1891,7 @@ void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
>  		for_each_cpu_transcoder_masked(dev_priv, trans, trans_mask) {
>  			enum intel_display_power_domain domain;
>  
> -			domain = POWER_DOMAIN_TRANSCODER(trans);
> +			domain = intel_display_power_transcoder_domain(display, trans);
>  			if (!intel_display_power_is_enabled(display, domain))
>  				continue;
>  
> @@ -1902,7 +1906,7 @@ void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
>  		dev_priv->display.irq.de_irq_mask[pipe] = ~de_pipe_masked;
>  
>  		if (intel_display_power_is_enabled(display,
> -						   POWER_DOMAIN_PIPE(pipe)))
> +						   intel_display_power_pipe_domain(display, pipe)))
>  			intel_display_irq_regs_init(display, GEN8_DE_PIPE_IRQ_REGS(pipe),
>  						    dev_priv->display.irq.de_irq_mask[pipe],
>  						    de_pipe_enables);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 396930937d98..b206bef3d44c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -2476,6 +2476,27 @@ intel_port_domains_for_platform(struct intel_display *display,
>  	}
>  }
>  
> +enum intel_display_power_domain
> +intel_display_power_pipe_domain(struct intel_display *display, enum pipe pipe)
> +{
> +	return pipe - PIPE_A + POWER_DOMAIN_PIPE_A;
> +}
> +
> +enum intel_display_power_domain
> +intel_display_power_pipe_panel_fitter_domain(struct intel_display *display, enum pipe pipe)
> +{
> +	return pipe - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A;
> +}
> +
> +enum intel_display_power_domain
> +intel_display_power_transcoder_domain(struct intel_display *display, enum transcoder trans)
> +{
> +	if (trans == TRANSCODER_EDP)
> +		return POWER_DOMAIN_TRANSCODER_EDP;
> +
> +	return trans - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A;
> +}
> +
>  static const struct intel_ddi_port_domains *
>  intel_port_domains_for_port(struct intel_display *display, enum port port)
>  {
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h
> index 1b53d67f9b60..ee02bc7111c0 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
> @@ -12,7 +12,9 @@
>  #include "intel_wakeref.h"
>  
>  enum aux_ch;
> +enum pipe;
>  enum port;
> +enum transcoder;
>  struct i915_power_well;
>  struct intel_display;
>  struct intel_encoder;
> @@ -117,14 +119,6 @@ enum intel_display_power_domain {
>  	POWER_DOMAIN_INVALID = POWER_DOMAIN_NUM,
>  };
>  
> -#define POWER_DOMAIN_PIPE(pipe) \
> -	((enum intel_display_power_domain)((pipe) - PIPE_A + POWER_DOMAIN_PIPE_A))
> -#define POWER_DOMAIN_PIPE_PANEL_FITTER(pipe) \
> -	((enum intel_display_power_domain)((pipe) - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A))
> -#define POWER_DOMAIN_TRANSCODER(tran) \
> -	((tran) == TRANSCODER_EDP ? POWER_DOMAIN_TRANSCODER_EDP : \
> -	 (enum intel_display_power_domain)((tran) - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A))
> -
>  struct intel_power_domain_mask {
>  	DECLARE_BITMAP(bits, POWER_DOMAIN_NUM);
>  };
> @@ -270,6 +264,12 @@ intel_display_power_put_all_in_set(struct intel_display *display,
>  
>  void intel_display_power_debug(struct intel_display *display, struct seq_file *m);
>  
> +enum intel_display_power_domain
> +intel_display_power_pipe_domain(struct intel_display *display, enum pipe pipe);
> +enum intel_display_power_domain
> +intel_display_power_pipe_panel_fitter_domain(struct intel_display *display, enum pipe pipe);
> +enum intel_display_power_domain
> +intel_display_power_transcoder_domain(struct intel_display *display, enum transcoder trans);
>  enum intel_display_power_domain
>  intel_display_power_ddi_lanes_domain(struct intel_display *display, enum port port);
>  enum intel_display_power_domain
> diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> index 10e26c3db946..322d4ca7cf7d 100644
> --- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> +++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> @@ -598,7 +598,7 @@ int intel_crtc_set_crc_source(struct drm_crtc *_crtc, const char *source_name)
>  		return -EINVAL;
>  	}
>  
> -	power_domain = POWER_DOMAIN_PIPE(pipe);
> +	power_domain = intel_display_power_pipe_domain(display, pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref) {
>  		drm_dbg_kms(&dev_priv->drm,
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index ab5bc8a08f0f..09f1b2f959f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -457,7 +457,7 @@ vlv_sprite_get_hw_state(struct intel_plane *plane,
>  	intel_wakeref_t wakeref;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> @@ -881,7 +881,7 @@ ivb_sprite_get_hw_state(struct intel_plane *plane,
>  	intel_wakeref_t wakeref;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> @@ -1216,7 +1216,7 @@ g4x_sprite_get_hw_state(struct intel_plane *plane,
>  	intel_wakeref_t wakeref;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index 6e7151346382..928fa69f65e9 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -357,6 +357,7 @@ enum intel_display_power_domain
>  intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder)
>  {
>  	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	struct intel_display *display = &i915->display;
>  	enum pipe pipe = crtc->pipe;
>  
>  	/*
> @@ -373,7 +374,7 @@ intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder)
>  	if (DISPLAY_VER(i915) == 12 && !IS_ROCKETLAKE(i915) && pipe == PIPE_A)
>  		return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
>  	else if (is_pipe_dsc(crtc, cpu_transcoder))
> -		return POWER_DOMAIN_PIPE(pipe);
> +		return intel_display_power_pipe_domain(display, pipe);
>  	else
>  		return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
>  }
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index 110f66dd5cf0..4fe6fb64292c 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -925,7 +925,7 @@ skl_plane_get_hw_state(struct intel_plane *plane,
>  	intel_wakeref_t wakeref;
>  	bool ret;
>  
> -	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> +	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return false;
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> index 10a1daad28eb..58b934907005 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -843,7 +843,7 @@ static void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
>  	intel_wakeref_t wakeref;
>  	enum plane_id plane_id;
>  
> -	power_domain = POWER_DOMAIN_PIPE(pipe);
> +	power_domain = intel_display_power_pipe_domain(display, pipe);
>  	wakeref = intel_display_power_get_if_enabled(display, power_domain);
>  	if (!wakeref)
>  		return;
> -- 
> 2.48.1
Gustavo Sousa Feb. 17, 2025, 9:25 p.m. UTC | #2
Quoting Ville Syrjälä (2025-02-17 17:46:27-03:00)
>On Mon, Feb 17, 2025 at 05:34:28PM -0300, Gustavo Sousa wrote:
>> We already have other functions to get power domain for other things
>> (i.e. intel_display_power_*_domain()). Convert POWER_DOMAIN_*() macros
>> to the same standard.
>> 
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
>> ---
>> 
>> Note: Maybe this patch could be squashed with the previous one.
>> 
>>  drivers/gpu/drm/i915/display/i9xx_plane.c     |  2 +-
>>  drivers/gpu/drm/i915/display/intel_cmtg.c     |  2 +-
>>  drivers/gpu/drm/i915/display/intel_cursor.c   |  4 +-
>>  drivers/gpu/drm/i915/display/intel_ddi.c      | 10 ++---
>>  drivers/gpu/drm/i915/display/intel_display.c  | 39 ++++++++++++-------
>>  .../gpu/drm/i915/display/intel_display_irq.c  | 18 +++++----
>>  .../drm/i915/display/intel_display_power.c    | 21 ++++++++++
>>  .../drm/i915/display/intel_display_power.h    | 16 ++++----
>>  drivers/gpu/drm/i915/display/intel_pipe_crc.c |  2 +-
>>  drivers/gpu/drm/i915/display/intel_sprite.c   |  6 +--
>>  drivers/gpu/drm/i915/display/intel_vdsc.c     |  3 +-
>>  .../drm/i915/display/skl_universal_plane.c    |  2 +-
>>  drivers/gpu/drm/i915/display/skl_watermark.c  |  2 +-
>>  13 files changed, 82 insertions(+), 45 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
>> index aef8d8b7ea85..504599a20b8f 100644
>> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
>> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
>> @@ -697,7 +697,7 @@ static bool i9xx_plane_get_hw_state(struct intel_plane *plane,
>>           * but that's only the case for gen2-4 which don't have any
>>           * display power wells.
>>           */
>> -        power_domain = POWER_DOMAIN_PIPE(plane->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>
>The naming feels a bit awkward. If we want to stick to the full
>intel_display_power_ namespace then maybe these should be
>intel_display_power_domain_foo() instead?

Yeah. I agree that having intel_display_power_domain_foo() is better
than intel_display_power_foo_domain().

>
>An alternative would be just something like intel_pipe_power_domain(),
>but obviously that doesn't have the full namespace.

I guess that's okay-ish? Do we risk clashing (not only lexically, but
semantically as well) with some non-display thing from the rest of the
driver? If not, I would say we shorten them.

I would prefer intel_power_domain_foo() over intel_foo_power_domain()
though, just as suggested for the longer version of the names.

--
Gustavo Sousa

>
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.c b/drivers/gpu/drm/i915/display/intel_cmtg.c
>> index 07d7f4e8f60f..6b8b20e101a4 100644
>> --- a/drivers/gpu/drm/i915/display/intel_cmtg.c
>> +++ b/drivers/gpu/drm/i915/display/intel_cmtg.c
>> @@ -92,7 +92,7 @@ static bool intel_cmtg_transcoder_is_secondary(struct intel_display *display,
>>          if (!HAS_TRANSCODER(display, trans))
>>                  return false;
>>  
>> -        power_domain = POWER_DOMAIN_TRANSCODER(trans);
>> +        power_domain = intel_display_power_transcoder_domain(display, trans);
>>  
>>          with_intel_display_power_if_enabled(display, power_domain, wakeref)
>>                  val = intel_de_read(display, TRANS_DDI_FUNC_CTL2(display, trans));
>> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
>> index f31efac89e95..85d406335b6f 100644
>> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
>> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
>> @@ -336,7 +336,7 @@ static bool i845_cursor_get_hw_state(struct intel_plane *plane,
>>          intel_wakeref_t wakeref;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(PIPE_A);
>> +        power_domain = intel_display_power_pipe_domain(display, PIPE_A);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> @@ -746,7 +746,7 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
>>           * but that's only the case for gen2-3 which don't have any
>>           * display power wells.
>>           */
>> -        power_domain = POWER_DOMAIN_PIPE(plane->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
>> index 5082f38b0a02..6fbf1583ca99 100644
>> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
>> @@ -852,11 +852,12 @@ static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder,
>>  
>>          for_each_pipe(dev_priv, p) {
>>                  enum transcoder cpu_transcoder = (enum transcoder)p;
>> +                enum intel_display_power_domain power_domain;
>>                  u32 port_mask, ddi_select, ddi_mode;
>>                  intel_wakeref_t trans_wakeref;
>>  
>> -                trans_wakeref = intel_display_power_get_if_enabled(display,
>> -                                                                   POWER_DOMAIN_TRANSCODER(cpu_transcoder));
>> +                power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>> +                trans_wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>                  if (!trans_wakeref)
>>                          continue;
>>  
>> @@ -870,8 +871,7 @@ static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder,
>>  
>>                  tmp = intel_de_read(dev_priv,
>>                                      TRANS_DDI_FUNC_CTL(dev_priv, cpu_transcoder));
>> -                intel_display_power_put(display, POWER_DOMAIN_TRANSCODER(cpu_transcoder),
>> -                                        trans_wakeref);
>> +                intel_display_power_put(display, power_domain, trans_wakeref);
>>  
>>                  if ((tmp & port_mask) != ddi_select)
>>                          continue;
>> @@ -3950,7 +3950,7 @@ static void bdw_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
>>                  enum intel_display_power_domain power_domain;
>>                  intel_wakeref_t trans_wakeref;
>>  
>> -                power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
>> +                power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>>                  trans_wakeref = intel_display_power_get_if_enabled(display,
>>                                                                     power_domain);
>>  
>> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> index 065fdf6dbb88..1b45342bc986 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> @@ -429,7 +429,7 @@ void assert_transcoder(struct intel_display *display,
>>          if (display->platform.i830)
>>                  state = true;
>>  
>> -        power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
>> +        power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (wakeref) {
>>                  u32 val = intel_de_read(display,
>> @@ -2013,6 +2013,7 @@ intel_aux_power_domain(struct intel_digital_port *dig_port)
>>  static void get_crtc_power_domains(struct intel_crtc_state *crtc_state,
>>                                     struct intel_power_domain_mask *mask)
>>  {
>> +        struct intel_display *display = to_intel_display(crtc_state);
>>          struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>>          struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>          enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> @@ -2024,11 +2025,11 @@ static void get_crtc_power_domains(struct intel_crtc_state *crtc_state,
>>          if (!crtc_state->hw.active)
>>                  return;
>>  
>> -        set_bit(POWER_DOMAIN_PIPE(pipe), mask->bits);
>> -        set_bit(POWER_DOMAIN_TRANSCODER(cpu_transcoder), mask->bits);
>> +        set_bit(intel_display_power_pipe_domain(display, pipe), mask->bits);
>> +        set_bit(intel_display_power_transcoder_domain(display, cpu_transcoder), mask->bits);
>>          if (crtc_state->pch_pfit.enabled ||
>>              crtc_state->pch_pfit.force_thru)
>> -                set_bit(POWER_DOMAIN_PIPE_PANEL_FITTER(pipe), mask->bits);
>> +                set_bit(intel_display_power_pipe_panel_fitter_domain(display, pipe), mask->bits);
>>  
>>          drm_for_each_encoder_mask(encoder, &dev_priv->drm,
>>                                    crtc_state->uapi.encoder_mask) {
>> @@ -3113,7 +3114,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
>>          u32 tmp;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> @@ -3497,7 +3498,7 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
>>          u32 tmp;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> @@ -3590,7 +3591,7 @@ static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
>>          intel_wakeref_t wakeref;
>>          u32 tmp = 0;
>>  
>> -        power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
>> +        power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>>  
>>          with_intel_display_power_if_enabled(display, power_domain, wakeref)
>>                  tmp = intel_de_read(dev_priv,
>> @@ -3617,7 +3618,7 @@ static void enabled_uncompressed_joiner_pipes(struct intel_display *display,
>>                  enum pipe pipe = crtc->pipe;
>>                  intel_wakeref_t wakeref;
>>  
>> -                power_domain = POWER_DOMAIN_PIPE(pipe);
>> +                power_domain = intel_display_power_pipe_domain(display, pipe);
>>                  with_intel_display_power_if_enabled(display, power_domain, wakeref) {
>>                          u32 tmp = intel_de_read(display, ICL_PIPE_DSS_CTL1(pipe));
>>  
>> @@ -3884,7 +3885,7 @@ static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
>>                  enum pipe trans_pipe;
>>                  u32 tmp = 0;
>>  
>> -                power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
>> +                power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>>                  with_intel_display_power_if_enabled(display, power_domain, wakeref)
>>                          tmp = intel_de_read(dev_priv,
>>                                              TRANS_DDI_FUNC_CTL(dev_priv, cpu_transcoder));
>> @@ -3973,6 +3974,7 @@ static bool hsw_get_transcoder_state(struct intel_crtc *crtc,
>>          struct intel_display *display = to_intel_display(crtc);
>>          struct drm_device *dev = crtc->base.dev;
>>          struct drm_i915_private *dev_priv = to_i915(dev);
>> +        enum intel_display_power_domain power_domain;
>>          unsigned long enabled_transcoders;
>>          u32 tmp;
>>  
>> @@ -3989,8 +3991,9 @@ static bool hsw_get_transcoder_state(struct intel_crtc *crtc,
>>           */
>>          pipe_config->cpu_transcoder = ffs(enabled_transcoders) - 1;
>>  
>> -        if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set,
>> -                                                       POWER_DOMAIN_TRANSCODER(pipe_config->cpu_transcoder)))
>> +        power_domain = intel_display_power_transcoder_domain(display, pipe_config->cpu_transcoder);
>> +
>> +        if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set, power_domain))
>>                  return false;
>>  
>>          if (hsw_panel_transcoders(dev_priv) & BIT(pipe_config->cpu_transcoder)) {
>> @@ -4013,6 +4016,7 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>>  {
>>          struct intel_display *display = to_intel_display(crtc);
>>          struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> +        enum intel_display_power_domain power_domain;
>>          enum transcoder cpu_transcoder;
>>          enum port port;
>>          u32 tmp;
>> @@ -4023,8 +4027,10 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>>                  else
>>                          cpu_transcoder = TRANSCODER_DSI_C;
>>  
>> +                power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
>> +
>>                  if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set,
>> -                                                               POWER_DOMAIN_TRANSCODER(cpu_transcoder)))
>> +                                                               power_domain))
>>                          continue;
>>  
>>                  /*
>> @@ -4073,11 +4079,14 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>>  {
>>          struct intel_display *display = to_intel_display(crtc);
>>          struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> +        enum intel_display_power_domain power_domain;
>>          bool active;
>>          u32 tmp;
>>  
>> +        power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
>> +
>>          if (!intel_display_power_get_in_set_if_enabled(display, &crtc->hw_readout_power_domains,
>> -                                                       POWER_DOMAIN_PIPE(crtc->pipe)))
>> +                                                       power_domain))
>>                  return false;
>>  
>>          pipe_config->shared_dpll = NULL;
>> @@ -4128,8 +4137,10 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>>                  pipe_config->ips_linetime =
>>                          REG_FIELD_GET(HSW_IPS_LINETIME_MASK, tmp);
>>  
>> +        power_domain = intel_display_power_pipe_panel_fitter_domain(display, crtc->pipe);
>> +
>>          if (intel_display_power_get_in_set_if_enabled(display, &crtc->hw_readout_power_domains,
>> -                                                      POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe))) {
>> +                                                      power_domain)) {
>>                  if (DISPLAY_VER(dev_priv) >= 9)
>>                          skl_scaler_get_config(pipe_config);
>>                  else
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
>> index 880eaed83cd5..1fd17aad3a65 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
>> @@ -1617,10 +1617,14 @@ void gen8_display_irq_reset(struct drm_i915_private *dev_priv)
>>          intel_de_write(display, EDP_PSR_IMR, 0xffffffff);
>>          intel_de_write(display, EDP_PSR_IIR, 0xffffffff);
>>  
>> -        for_each_pipe(dev_priv, pipe)
>> -                if (intel_display_power_is_enabled(display,
>> -                                                   POWER_DOMAIN_PIPE(pipe)))
>> +        for_each_pipe(dev_priv, pipe) {
>> +                enum intel_display_power_domain power_domain;
>> +
>> +                power_domain = intel_display_power_pipe_domain(display, pipe);
>> +
>> +                if (intel_display_power_is_enabled(display, power_domain))
>>                          intel_display_irq_regs_reset(display, GEN8_DE_PIPE_IRQ_REGS(pipe));
>> +        }
>>  
>>          intel_display_irq_regs_reset(display, GEN8_DE_PORT_IRQ_REGS);
>>          intel_display_irq_regs_reset(display, GEN8_DE_MISC_IRQ_REGS);
>> @@ -1644,7 +1648,7 @@ void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
>>                  for_each_cpu_transcoder_masked(dev_priv, trans, trans_mask) {
>>                          enum intel_display_power_domain domain;
>>  
>> -                        domain = POWER_DOMAIN_TRANSCODER(trans);
>> +                        domain = intel_display_power_transcoder_domain(display, trans);
>>                          if (!intel_display_power_is_enabled(display, domain))
>>                                  continue;
>>  
>> @@ -1662,7 +1666,7 @@ void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
>>  
>>          for_each_pipe(dev_priv, pipe)
>>                  if (intel_display_power_is_enabled(display,
>> -                                                   POWER_DOMAIN_PIPE(pipe)))
>> +                                                   intel_display_power_pipe_domain(display, pipe)))
>>                          intel_display_irq_regs_reset(display, GEN8_DE_PIPE_IRQ_REGS(pipe));
>>  
>>          intel_display_irq_regs_reset(display, GEN8_DE_PORT_IRQ_REGS);
>> @@ -1887,7 +1891,7 @@ void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
>>                  for_each_cpu_transcoder_masked(dev_priv, trans, trans_mask) {
>>                          enum intel_display_power_domain domain;
>>  
>> -                        domain = POWER_DOMAIN_TRANSCODER(trans);
>> +                        domain = intel_display_power_transcoder_domain(display, trans);
>>                          if (!intel_display_power_is_enabled(display, domain))
>>                                  continue;
>>  
>> @@ -1902,7 +1906,7 @@ void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
>>                  dev_priv->display.irq.de_irq_mask[pipe] = ~de_pipe_masked;
>>  
>>                  if (intel_display_power_is_enabled(display,
>> -                                                   POWER_DOMAIN_PIPE(pipe)))
>> +                                                   intel_display_power_pipe_domain(display, pipe)))
>>                          intel_display_irq_regs_init(display, GEN8_DE_PIPE_IRQ_REGS(pipe),
>>                                                      dev_priv->display.irq.de_irq_mask[pipe],
>>                                                      de_pipe_enables);
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
>> index 396930937d98..b206bef3d44c 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
>> @@ -2476,6 +2476,27 @@ intel_port_domains_for_platform(struct intel_display *display,
>>          }
>>  }
>>  
>> +enum intel_display_power_domain
>> +intel_display_power_pipe_domain(struct intel_display *display, enum pipe pipe)
>> +{
>> +        return pipe - PIPE_A + POWER_DOMAIN_PIPE_A;
>> +}
>> +
>> +enum intel_display_power_domain
>> +intel_display_power_pipe_panel_fitter_domain(struct intel_display *display, enum pipe pipe)
>> +{
>> +        return pipe - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A;
>> +}
>> +
>> +enum intel_display_power_domain
>> +intel_display_power_transcoder_domain(struct intel_display *display, enum transcoder trans)
>> +{
>> +        if (trans == TRANSCODER_EDP)
>> +                return POWER_DOMAIN_TRANSCODER_EDP;
>> +
>> +        return trans - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A;
>> +}
>> +
>>  static const struct intel_ddi_port_domains *
>>  intel_port_domains_for_port(struct intel_display *display, enum port port)
>>  {
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h
>> index 1b53d67f9b60..ee02bc7111c0 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_power.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
>> @@ -12,7 +12,9 @@
>>  #include "intel_wakeref.h"
>>  
>>  enum aux_ch;
>> +enum pipe;
>>  enum port;
>> +enum transcoder;
>>  struct i915_power_well;
>>  struct intel_display;
>>  struct intel_encoder;
>> @@ -117,14 +119,6 @@ enum intel_display_power_domain {
>>          POWER_DOMAIN_INVALID = POWER_DOMAIN_NUM,
>>  };
>>  
>> -#define POWER_DOMAIN_PIPE(pipe) \
>> -        ((enum intel_display_power_domain)((pipe) - PIPE_A + POWER_DOMAIN_PIPE_A))
>> -#define POWER_DOMAIN_PIPE_PANEL_FITTER(pipe) \
>> -        ((enum intel_display_power_domain)((pipe) - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A))
>> -#define POWER_DOMAIN_TRANSCODER(tran) \
>> -        ((tran) == TRANSCODER_EDP ? POWER_DOMAIN_TRANSCODER_EDP : \
>> -         (enum intel_display_power_domain)((tran) - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A))
>> -
>>  struct intel_power_domain_mask {
>>          DECLARE_BITMAP(bits, POWER_DOMAIN_NUM);
>>  };
>> @@ -270,6 +264,12 @@ intel_display_power_put_all_in_set(struct intel_display *display,
>>  
>>  void intel_display_power_debug(struct intel_display *display, struct seq_file *m);
>>  
>> +enum intel_display_power_domain
>> +intel_display_power_pipe_domain(struct intel_display *display, enum pipe pipe);
>> +enum intel_display_power_domain
>> +intel_display_power_pipe_panel_fitter_domain(struct intel_display *display, enum pipe pipe);
>> +enum intel_display_power_domain
>> +intel_display_power_transcoder_domain(struct intel_display *display, enum transcoder trans);
>>  enum intel_display_power_domain
>>  intel_display_power_ddi_lanes_domain(struct intel_display *display, enum port port);
>>  enum intel_display_power_domain
>> diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
>> index 10e26c3db946..322d4ca7cf7d 100644
>> --- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
>> +++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
>> @@ -598,7 +598,7 @@ int intel_crtc_set_crc_source(struct drm_crtc *_crtc, const char *source_name)
>>                  return -EINVAL;
>>          }
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref) {
>>                  drm_dbg_kms(&dev_priv->drm,
>> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
>> index ab5bc8a08f0f..09f1b2f959f2 100644
>> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
>> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
>> @@ -457,7 +457,7 @@ vlv_sprite_get_hw_state(struct intel_plane *plane,
>>          intel_wakeref_t wakeref;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(plane->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> @@ -881,7 +881,7 @@ ivb_sprite_get_hw_state(struct intel_plane *plane,
>>          intel_wakeref_t wakeref;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(plane->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> @@ -1216,7 +1216,7 @@ g4x_sprite_get_hw_state(struct intel_plane *plane,
>>          intel_wakeref_t wakeref;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(plane->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
>> index 6e7151346382..928fa69f65e9 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
>> @@ -357,6 +357,7 @@ enum intel_display_power_domain
>>  intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder)
>>  {
>>          struct drm_i915_private *i915 = to_i915(crtc->base.dev);
>> +        struct intel_display *display = &i915->display;
>>          enum pipe pipe = crtc->pipe;
>>  
>>          /*
>> @@ -373,7 +374,7 @@ intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder)
>>          if (DISPLAY_VER(i915) == 12 && !IS_ROCKETLAKE(i915) && pipe == PIPE_A)
>>                  return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
>>          else if (is_pipe_dsc(crtc, cpu_transcoder))
>> -                return POWER_DOMAIN_PIPE(pipe);
>> +                return intel_display_power_pipe_domain(display, pipe);
>>          else
>>                  return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
>>  }
>> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> index 110f66dd5cf0..4fe6fb64292c 100644
>> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> @@ -925,7 +925,7 @@ skl_plane_get_hw_state(struct intel_plane *plane,
>>          intel_wakeref_t wakeref;
>>          bool ret;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(plane->pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, plane->pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return false;
>> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
>> index 10a1daad28eb..58b934907005 100644
>> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
>> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
>> @@ -843,7 +843,7 @@ static void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
>>          intel_wakeref_t wakeref;
>>          enum plane_id plane_id;
>>  
>> -        power_domain = POWER_DOMAIN_PIPE(pipe);
>> +        power_domain = intel_display_power_pipe_domain(display, pipe);
>>          wakeref = intel_display_power_get_if_enabled(display, power_domain);
>>          if (!wakeref)
>>                  return;
>> -- 
>> 2.48.1
>
>-- 
>Ville Syrjälä
>Intel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
index aef8d8b7ea85..504599a20b8f 100644
--- a/drivers/gpu/drm/i915/display/i9xx_plane.c
+++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
@@ -697,7 +697,7 @@  static bool i9xx_plane_get_hw_state(struct intel_plane *plane,
 	 * but that's only the case for gen2-4 which don't have any
 	 * display power wells.
 	 */
-	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
+	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.c b/drivers/gpu/drm/i915/display/intel_cmtg.c
index 07d7f4e8f60f..6b8b20e101a4 100644
--- a/drivers/gpu/drm/i915/display/intel_cmtg.c
+++ b/drivers/gpu/drm/i915/display/intel_cmtg.c
@@ -92,7 +92,7 @@  static bool intel_cmtg_transcoder_is_secondary(struct intel_display *display,
 	if (!HAS_TRANSCODER(display, trans))
 		return false;
 
-	power_domain = POWER_DOMAIN_TRANSCODER(trans);
+	power_domain = intel_display_power_transcoder_domain(display, trans);
 
 	with_intel_display_power_if_enabled(display, power_domain, wakeref)
 		val = intel_de_read(display, TRANS_DDI_FUNC_CTL2(display, trans));
diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index f31efac89e95..85d406335b6f 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -336,7 +336,7 @@  static bool i845_cursor_get_hw_state(struct intel_plane *plane,
 	intel_wakeref_t wakeref;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(PIPE_A);
+	power_domain = intel_display_power_pipe_domain(display, PIPE_A);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
@@ -746,7 +746,7 @@  static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
 	 * but that's only the case for gen2-3 which don't have any
 	 * display power wells.
 	 */
-	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
+	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 5082f38b0a02..6fbf1583ca99 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -852,11 +852,12 @@  static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder,
 
 	for_each_pipe(dev_priv, p) {
 		enum transcoder cpu_transcoder = (enum transcoder)p;
+		enum intel_display_power_domain power_domain;
 		u32 port_mask, ddi_select, ddi_mode;
 		intel_wakeref_t trans_wakeref;
 
-		trans_wakeref = intel_display_power_get_if_enabled(display,
-								   POWER_DOMAIN_TRANSCODER(cpu_transcoder));
+		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
+		trans_wakeref = intel_display_power_get_if_enabled(display, power_domain);
 		if (!trans_wakeref)
 			continue;
 
@@ -870,8 +871,7 @@  static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder,
 
 		tmp = intel_de_read(dev_priv,
 				    TRANS_DDI_FUNC_CTL(dev_priv, cpu_transcoder));
-		intel_display_power_put(display, POWER_DOMAIN_TRANSCODER(cpu_transcoder),
-					trans_wakeref);
+		intel_display_power_put(display, power_domain, trans_wakeref);
 
 		if ((tmp & port_mask) != ddi_select)
 			continue;
@@ -3950,7 +3950,7 @@  static void bdw_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
 		enum intel_display_power_domain power_domain;
 		intel_wakeref_t trans_wakeref;
 
-		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
+		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
 		trans_wakeref = intel_display_power_get_if_enabled(display,
 								   power_domain);
 
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 065fdf6dbb88..1b45342bc986 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -429,7 +429,7 @@  void assert_transcoder(struct intel_display *display,
 	if (display->platform.i830)
 		state = true;
 
-	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
+	power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (wakeref) {
 		u32 val = intel_de_read(display,
@@ -2013,6 +2013,7 @@  intel_aux_power_domain(struct intel_digital_port *dig_port)
 static void get_crtc_power_domains(struct intel_crtc_state *crtc_state,
 				   struct intel_power_domain_mask *mask)
 {
+	struct intel_display *display = to_intel_display(crtc_state);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
@@ -2024,11 +2025,11 @@  static void get_crtc_power_domains(struct intel_crtc_state *crtc_state,
 	if (!crtc_state->hw.active)
 		return;
 
-	set_bit(POWER_DOMAIN_PIPE(pipe), mask->bits);
-	set_bit(POWER_DOMAIN_TRANSCODER(cpu_transcoder), mask->bits);
+	set_bit(intel_display_power_pipe_domain(display, pipe), mask->bits);
+	set_bit(intel_display_power_transcoder_domain(display, cpu_transcoder), mask->bits);
 	if (crtc_state->pch_pfit.enabled ||
 	    crtc_state->pch_pfit.force_thru)
-		set_bit(POWER_DOMAIN_PIPE_PANEL_FITTER(pipe), mask->bits);
+		set_bit(intel_display_power_pipe_panel_fitter_domain(display, pipe), mask->bits);
 
 	drm_for_each_encoder_mask(encoder, &dev_priv->drm,
 				  crtc_state->uapi.encoder_mask) {
@@ -3113,7 +3114,7 @@  static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
 	u32 tmp;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
+	power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
@@ -3497,7 +3498,7 @@  static bool ilk_get_pipe_config(struct intel_crtc *crtc,
 	u32 tmp;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
+	power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
@@ -3590,7 +3591,7 @@  static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
 	intel_wakeref_t wakeref;
 	u32 tmp = 0;
 
-	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
+	power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
 
 	with_intel_display_power_if_enabled(display, power_domain, wakeref)
 		tmp = intel_de_read(dev_priv,
@@ -3617,7 +3618,7 @@  static void enabled_uncompressed_joiner_pipes(struct intel_display *display,
 		enum pipe pipe = crtc->pipe;
 		intel_wakeref_t wakeref;
 
-		power_domain = POWER_DOMAIN_PIPE(pipe);
+		power_domain = intel_display_power_pipe_domain(display, pipe);
 		with_intel_display_power_if_enabled(display, power_domain, wakeref) {
 			u32 tmp = intel_de_read(display, ICL_PIPE_DSS_CTL1(pipe));
 
@@ -3884,7 +3885,7 @@  static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
 		enum pipe trans_pipe;
 		u32 tmp = 0;
 
-		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
+		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
 		with_intel_display_power_if_enabled(display, power_domain, wakeref)
 			tmp = intel_de_read(dev_priv,
 					    TRANS_DDI_FUNC_CTL(dev_priv, cpu_transcoder));
@@ -3973,6 +3974,7 @@  static bool hsw_get_transcoder_state(struct intel_crtc *crtc,
 	struct intel_display *display = to_intel_display(crtc);
 	struct drm_device *dev = crtc->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
+	enum intel_display_power_domain power_domain;
 	unsigned long enabled_transcoders;
 	u32 tmp;
 
@@ -3989,8 +3991,9 @@  static bool hsw_get_transcoder_state(struct intel_crtc *crtc,
 	 */
 	pipe_config->cpu_transcoder = ffs(enabled_transcoders) - 1;
 
-	if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set,
-						       POWER_DOMAIN_TRANSCODER(pipe_config->cpu_transcoder)))
+	power_domain = intel_display_power_transcoder_domain(display, pipe_config->cpu_transcoder);
+
+	if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set, power_domain))
 		return false;
 
 	if (hsw_panel_transcoders(dev_priv) & BIT(pipe_config->cpu_transcoder)) {
@@ -4013,6 +4016,7 @@  static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
 {
 	struct intel_display *display = to_intel_display(crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	enum intel_display_power_domain power_domain;
 	enum transcoder cpu_transcoder;
 	enum port port;
 	u32 tmp;
@@ -4023,8 +4027,10 @@  static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
 		else
 			cpu_transcoder = TRANSCODER_DSI_C;
 
+		power_domain = intel_display_power_transcoder_domain(display, cpu_transcoder);
+
 		if (!intel_display_power_get_in_set_if_enabled(display, power_domain_set,
-							       POWER_DOMAIN_TRANSCODER(cpu_transcoder)))
+							       power_domain))
 			continue;
 
 		/*
@@ -4073,11 +4079,14 @@  static bool hsw_get_pipe_config(struct intel_crtc *crtc,
 {
 	struct intel_display *display = to_intel_display(crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	enum intel_display_power_domain power_domain;
 	bool active;
 	u32 tmp;
 
+	power_domain = intel_display_power_pipe_domain(display, crtc->pipe);
+
 	if (!intel_display_power_get_in_set_if_enabled(display, &crtc->hw_readout_power_domains,
-						       POWER_DOMAIN_PIPE(crtc->pipe)))
+						       power_domain))
 		return false;
 
 	pipe_config->shared_dpll = NULL;
@@ -4128,8 +4137,10 @@  static bool hsw_get_pipe_config(struct intel_crtc *crtc,
 		pipe_config->ips_linetime =
 			REG_FIELD_GET(HSW_IPS_LINETIME_MASK, tmp);
 
+	power_domain = intel_display_power_pipe_panel_fitter_domain(display, crtc->pipe);
+
 	if (intel_display_power_get_in_set_if_enabled(display, &crtc->hw_readout_power_domains,
-						      POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe))) {
+						      power_domain)) {
 		if (DISPLAY_VER(dev_priv) >= 9)
 			skl_scaler_get_config(pipe_config);
 		else
diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
index 880eaed83cd5..1fd17aad3a65 100644
--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
@@ -1617,10 +1617,14 @@  void gen8_display_irq_reset(struct drm_i915_private *dev_priv)
 	intel_de_write(display, EDP_PSR_IMR, 0xffffffff);
 	intel_de_write(display, EDP_PSR_IIR, 0xffffffff);
 
-	for_each_pipe(dev_priv, pipe)
-		if (intel_display_power_is_enabled(display,
-						   POWER_DOMAIN_PIPE(pipe)))
+	for_each_pipe(dev_priv, pipe) {
+		enum intel_display_power_domain power_domain;
+
+		power_domain = intel_display_power_pipe_domain(display, pipe);
+
+		if (intel_display_power_is_enabled(display, power_domain))
 			intel_display_irq_regs_reset(display, GEN8_DE_PIPE_IRQ_REGS(pipe));
+	}
 
 	intel_display_irq_regs_reset(display, GEN8_DE_PORT_IRQ_REGS);
 	intel_display_irq_regs_reset(display, GEN8_DE_MISC_IRQ_REGS);
@@ -1644,7 +1648,7 @@  void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
 		for_each_cpu_transcoder_masked(dev_priv, trans, trans_mask) {
 			enum intel_display_power_domain domain;
 
-			domain = POWER_DOMAIN_TRANSCODER(trans);
+			domain = intel_display_power_transcoder_domain(display, trans);
 			if (!intel_display_power_is_enabled(display, domain))
 				continue;
 
@@ -1662,7 +1666,7 @@  void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
 
 	for_each_pipe(dev_priv, pipe)
 		if (intel_display_power_is_enabled(display,
-						   POWER_DOMAIN_PIPE(pipe)))
+						   intel_display_power_pipe_domain(display, pipe)))
 			intel_display_irq_regs_reset(display, GEN8_DE_PIPE_IRQ_REGS(pipe));
 
 	intel_display_irq_regs_reset(display, GEN8_DE_PORT_IRQ_REGS);
@@ -1887,7 +1891,7 @@  void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
 		for_each_cpu_transcoder_masked(dev_priv, trans, trans_mask) {
 			enum intel_display_power_domain domain;
 
-			domain = POWER_DOMAIN_TRANSCODER(trans);
+			domain = intel_display_power_transcoder_domain(display, trans);
 			if (!intel_display_power_is_enabled(display, domain))
 				continue;
 
@@ -1902,7 +1906,7 @@  void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
 		dev_priv->display.irq.de_irq_mask[pipe] = ~de_pipe_masked;
 
 		if (intel_display_power_is_enabled(display,
-						   POWER_DOMAIN_PIPE(pipe)))
+						   intel_display_power_pipe_domain(display, pipe)))
 			intel_display_irq_regs_init(display, GEN8_DE_PIPE_IRQ_REGS(pipe),
 						    dev_priv->display.irq.de_irq_mask[pipe],
 						    de_pipe_enables);
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index 396930937d98..b206bef3d44c 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -2476,6 +2476,27 @@  intel_port_domains_for_platform(struct intel_display *display,
 	}
 }
 
+enum intel_display_power_domain
+intel_display_power_pipe_domain(struct intel_display *display, enum pipe pipe)
+{
+	return pipe - PIPE_A + POWER_DOMAIN_PIPE_A;
+}
+
+enum intel_display_power_domain
+intel_display_power_pipe_panel_fitter_domain(struct intel_display *display, enum pipe pipe)
+{
+	return pipe - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A;
+}
+
+enum intel_display_power_domain
+intel_display_power_transcoder_domain(struct intel_display *display, enum transcoder trans)
+{
+	if (trans == TRANSCODER_EDP)
+		return POWER_DOMAIN_TRANSCODER_EDP;
+
+	return trans - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A;
+}
+
 static const struct intel_ddi_port_domains *
 intel_port_domains_for_port(struct intel_display *display, enum port port)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h
index 1b53d67f9b60..ee02bc7111c0 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.h
+++ b/drivers/gpu/drm/i915/display/intel_display_power.h
@@ -12,7 +12,9 @@ 
 #include "intel_wakeref.h"
 
 enum aux_ch;
+enum pipe;
 enum port;
+enum transcoder;
 struct i915_power_well;
 struct intel_display;
 struct intel_encoder;
@@ -117,14 +119,6 @@  enum intel_display_power_domain {
 	POWER_DOMAIN_INVALID = POWER_DOMAIN_NUM,
 };
 
-#define POWER_DOMAIN_PIPE(pipe) \
-	((enum intel_display_power_domain)((pipe) - PIPE_A + POWER_DOMAIN_PIPE_A))
-#define POWER_DOMAIN_PIPE_PANEL_FITTER(pipe) \
-	((enum intel_display_power_domain)((pipe) - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A))
-#define POWER_DOMAIN_TRANSCODER(tran) \
-	((tran) == TRANSCODER_EDP ? POWER_DOMAIN_TRANSCODER_EDP : \
-	 (enum intel_display_power_domain)((tran) - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A))
-
 struct intel_power_domain_mask {
 	DECLARE_BITMAP(bits, POWER_DOMAIN_NUM);
 };
@@ -270,6 +264,12 @@  intel_display_power_put_all_in_set(struct intel_display *display,
 
 void intel_display_power_debug(struct intel_display *display, struct seq_file *m);
 
+enum intel_display_power_domain
+intel_display_power_pipe_domain(struct intel_display *display, enum pipe pipe);
+enum intel_display_power_domain
+intel_display_power_pipe_panel_fitter_domain(struct intel_display *display, enum pipe pipe);
+enum intel_display_power_domain
+intel_display_power_transcoder_domain(struct intel_display *display, enum transcoder trans);
 enum intel_display_power_domain
 intel_display_power_ddi_lanes_domain(struct intel_display *display, enum port port);
 enum intel_display_power_domain
diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
index 10e26c3db946..322d4ca7cf7d 100644
--- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
+++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
@@ -598,7 +598,7 @@  int intel_crtc_set_crc_source(struct drm_crtc *_crtc, const char *source_name)
 		return -EINVAL;
 	}
 
-	power_domain = POWER_DOMAIN_PIPE(pipe);
+	power_domain = intel_display_power_pipe_domain(display, pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref) {
 		drm_dbg_kms(&dev_priv->drm,
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
index ab5bc8a08f0f..09f1b2f959f2 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -457,7 +457,7 @@  vlv_sprite_get_hw_state(struct intel_plane *plane,
 	intel_wakeref_t wakeref;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
+	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
@@ -881,7 +881,7 @@  ivb_sprite_get_hw_state(struct intel_plane *plane,
 	intel_wakeref_t wakeref;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
+	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
@@ -1216,7 +1216,7 @@  g4x_sprite_get_hw_state(struct intel_plane *plane,
 	intel_wakeref_t wakeref;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
+	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 6e7151346382..928fa69f65e9 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -357,6 +357,7 @@  enum intel_display_power_domain
 intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder)
 {
 	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	struct intel_display *display = &i915->display;
 	enum pipe pipe = crtc->pipe;
 
 	/*
@@ -373,7 +374,7 @@  intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder)
 	if (DISPLAY_VER(i915) == 12 && !IS_ROCKETLAKE(i915) && pipe == PIPE_A)
 		return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
 	else if (is_pipe_dsc(crtc, cpu_transcoder))
-		return POWER_DOMAIN_PIPE(pipe);
+		return intel_display_power_pipe_domain(display, pipe);
 	else
 		return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
 }
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 110f66dd5cf0..4fe6fb64292c 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -925,7 +925,7 @@  skl_plane_get_hw_state(struct intel_plane *plane,
 	intel_wakeref_t wakeref;
 	bool ret;
 
-	power_domain = POWER_DOMAIN_PIPE(plane->pipe);
+	power_domain = intel_display_power_pipe_domain(display, plane->pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return false;
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index 10a1daad28eb..58b934907005 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -843,7 +843,7 @@  static void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
 	intel_wakeref_t wakeref;
 	enum plane_id plane_id;
 
-	power_domain = POWER_DOMAIN_PIPE(pipe);
+	power_domain = intel_display_power_pipe_domain(display, pipe);
 	wakeref = intel_display_power_get_if_enabled(display, power_domain);
 	if (!wakeref)
 		return;