All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v2 5/9] drm/i915/display/pch: use intel_de_rmw if possible
Date: Fri, 6 Jan 2023 10:28:11 -0500	[thread overview]
Message-ID: <Y7g+Cxdj9CdMga1e@intel.com> (raw)
In-Reply-To: <20230105131046.2173431-5-andrzej.hajda@intel.com>

On Thu, Jan 05, 2023 at 02:10:42PM +0100, Andrzej Hajda wrote:
> The helper makes the code more compact and readable.
> 
> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  .../gpu/drm/i915/display/intel_pch_display.c  | 41 +++++--------------
>  .../gpu/drm/i915/display/intel_pch_refclk.c   | 10 +----
>  2 files changed, 13 insertions(+), 38 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_pch_display.c b/drivers/gpu/drm/i915/display/intel_pch_display.c
> index cecc0d007cf39c..4b5e069a1b9051 100644
> --- a/drivers/gpu/drm/i915/display/intel_pch_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_pch_display.c
> @@ -307,7 +307,6 @@ static void ilk_disable_pch_transcoder(struct intel_crtc *crtc)
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	enum pipe pipe = crtc->pipe;
>  	i915_reg_t reg;
> -	u32 val;
>  
>  	/* FDI relies on the transcoder */
>  	assert_fdi_tx_disabled(dev_priv, pipe);
> @@ -317,21 +316,16 @@ static void ilk_disable_pch_transcoder(struct intel_crtc *crtc)
>  	assert_pch_ports_disabled(dev_priv, pipe);
>  
>  	reg = PCH_TRANSCONF(pipe);
> -	val = intel_de_read(dev_priv, reg);
> -	val &= ~TRANS_ENABLE;
> -	intel_de_write(dev_priv, reg, val);
> +	intel_de_rmw(dev_priv, reg, TRANS_ENABLE, 0);
>  	/* wait for PCH transcoder off, transcoder state */
>  	if (intel_de_wait_for_clear(dev_priv, reg, TRANS_STATE_ENABLE, 50))
>  		drm_err(&dev_priv->drm, "failed to disable transcoder %c\n",
>  			pipe_name(pipe));
>  
> -	if (HAS_PCH_CPT(dev_priv)) {
> +	if (HAS_PCH_CPT(dev_priv))
>  		/* Workaround: Clear the timing override chicken bit again. */
> -		reg = TRANS_CHICKEN2(pipe);
> -		val = intel_de_read(dev_priv, reg);
> -		val &= ~TRANS_CHICKEN2_TIMING_OVERRIDE;
> -		intel_de_write(dev_priv, reg, val);
> -	}
> +		intel_de_rmw(dev_priv, TRANS_CHICKEN2(pipe),
> +			     TRANS_CHICKEN2_TIMING_OVERRIDE, 0);
>  }
>  
>  void ilk_pch_pre_enable(struct intel_atomic_state *state,
> @@ -456,21 +450,14 @@ void ilk_pch_post_disable(struct intel_atomic_state *state,
>  	ilk_disable_pch_transcoder(crtc);
>  
>  	if (HAS_PCH_CPT(dev_priv)) {
> -		i915_reg_t reg;
> -		u32 temp;
> -
>  		/* disable TRANS_DP_CTL */
> -		reg = TRANS_DP_CTL(pipe);
> -		temp = intel_de_read(dev_priv, reg);
> -		temp &= ~(TRANS_DP_OUTPUT_ENABLE |
> -			  TRANS_DP_PORT_SEL_MASK);
> -		temp |= TRANS_DP_PORT_SEL_NONE;
> -		intel_de_write(dev_priv, reg, temp);
> +		intel_de_rmw(dev_priv, TRANS_DP_CTL(pipe),
> +			     TRANS_DP_OUTPUT_ENABLE | TRANS_DP_PORT_SEL_MASK,
> +			     TRANS_DP_PORT_SEL_NONE);
>  
>  		/* disable DPLL_SEL */
> -		temp = intel_de_read(dev_priv, PCH_DPLL_SEL);
> -		temp &= ~(TRANS_DPLL_ENABLE(pipe) | TRANS_DPLLB_SEL(pipe));
> -		intel_de_write(dev_priv, PCH_DPLL_SEL, temp);
> +		intel_de_rmw(dev_priv, PCH_DPLL_SEL,
> +			     TRANS_DPLL_ENABLE(pipe) | TRANS_DPLLB_SEL(pipe), 0);
>  	}
>  
>  	ilk_fdi_pll_disable(crtc);
> @@ -580,20 +567,14 @@ static void lpt_enable_pch_transcoder(const struct intel_crtc_state *crtc_state)
>  
>  static void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv)
>  {
> -	u32 val;
> -
> -	val = intel_de_read(dev_priv, LPT_TRANSCONF);
> -	val &= ~TRANS_ENABLE;
> -	intel_de_write(dev_priv, LPT_TRANSCONF, val);
> +	intel_de_rmw(dev_priv, LPT_TRANSCONF, TRANS_ENABLE, 0);
>  	/* wait for PCH transcoder off, transcoder state */
>  	if (intel_de_wait_for_clear(dev_priv, LPT_TRANSCONF,
>  				    TRANS_STATE_ENABLE, 50))
>  		drm_err(&dev_priv->drm, "Failed to disable PCH transcoder\n");
>  
>  	/* Workaround: clear timing override bit. */
> -	val = intel_de_read(dev_priv, TRANS_CHICKEN2(PIPE_A));
> -	val &= ~TRANS_CHICKEN2_TIMING_OVERRIDE;
> -	intel_de_write(dev_priv, TRANS_CHICKEN2(PIPE_A), val);
> +	intel_de_rmw(dev_priv, TRANS_CHICKEN2(PIPE_A), TRANS_CHICKEN2_TIMING_OVERRIDE, 0);
>  }
>  
>  void lpt_pch_enable(struct intel_atomic_state *state,
> diff --git a/drivers/gpu/drm/i915/display/intel_pch_refclk.c b/drivers/gpu/drm/i915/display/intel_pch_refclk.c
> index 08a94365b7d13b..6780c8fd9a1d31 100644
> --- a/drivers/gpu/drm/i915/display/intel_pch_refclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_pch_refclk.c
> @@ -12,19 +12,13 @@
>  
>  static void lpt_fdi_reset_mphy(struct drm_i915_private *dev_priv)
>  {
> -	u32 tmp;
> -
> -	tmp = intel_de_read(dev_priv, SOUTH_CHICKEN2);
> -	tmp |= FDI_MPHY_IOSFSB_RESET_CTL;
> -	intel_de_write(dev_priv, SOUTH_CHICKEN2, tmp);
> +	intel_de_rmw(dev_priv, SOUTH_CHICKEN2, 0, FDI_MPHY_IOSFSB_RESET_CTL);
>  
>  	if (wait_for_us(intel_de_read(dev_priv, SOUTH_CHICKEN2) &
>  			FDI_MPHY_IOSFSB_RESET_STATUS, 100))
>  		drm_err(&dev_priv->drm, "FDI mPHY reset assert timeout\n");
>  
> -	tmp = intel_de_read(dev_priv, SOUTH_CHICKEN2);
> -	tmp &= ~FDI_MPHY_IOSFSB_RESET_CTL;
> -	intel_de_write(dev_priv, SOUTH_CHICKEN2, tmp);
> +	intel_de_rmw(dev_priv, SOUTH_CHICKEN2, FDI_MPHY_IOSFSB_RESET_CTL, 0);
>  
>  	if (wait_for_us((intel_de_read(dev_priv, SOUTH_CHICKEN2) &
>  			 FDI_MPHY_IOSFSB_RESET_STATUS) == 0, 100))
> -- 
> 2.34.1
> 

  reply	other threads:[~2023-01-06 15:29 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-05 13:10 [Intel-gfx] [PATCH v2 1/9] drm/i915/display/core: use intel_de_rmw if possible Andrzej Hajda
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 2/9] drm/i915/display/power: " Andrzej Hajda
2023-01-05 20:27   ` Rodrigo Vivi
2023-02-16 16:27     ` Jani Nikula
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 3/9] drm/i915/display/dpll: " Andrzej Hajda
2023-01-05 20:32   ` Rodrigo Vivi
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 4/9] drm/i915/display/phys: " Andrzej Hajda
2023-01-06 15:26   ` Rodrigo Vivi
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 5/9] drm/i915/display/pch: " Andrzej Hajda
2023-01-06 15:28   ` Rodrigo Vivi [this message]
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 6/9] drm/i915/display/hdmi: " Andrzej Hajda
2023-01-06 15:35   ` Rodrigo Vivi
2023-01-09 10:51     ` Andrzej Hajda
2023-01-09 11:45       ` Jani Nikula
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 7/9] drm/i915/display/panel: use intel_de_rmw if possible in panel related code Andrzej Hajda
2023-01-09 19:22   ` Rodrigo Vivi
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 8/9] drm/i915/display/interfaces: use intel_de_rmw if possible Andrzej Hajda
2023-01-09 19:24   ` Rodrigo Vivi
2023-01-05 13:10 ` [Intel-gfx] [PATCH v2 9/9] drm/i915/display/misc: " Andrzej Hajda
2023-01-09 19:27   ` Rodrigo Vivi
2023-01-10  9:28     ` Andrzej Hajda
2023-01-10 11:36     ` [Intel-gfx] [PATCH v3] " Andrzej Hajda
2023-01-10 16:15       ` Rodrigo Vivi
2023-01-05 20:21 ` [Intel-gfx] [PATCH v2 1/9] drm/i915/display/core: " Rodrigo Vivi
2023-01-09 11:32 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [v2,1/9] drm/i915/display/core: use intel_de_rmw if possible (rev2) Patchwork
2023-01-09 11:54 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-01-09 13:38 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2023-01-10 15:45 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v2,1/9] drm/i915/display/core: use intel_de_rmw if possible (rev3) Patchwork
2023-01-11 12:09   ` Andrzej Hajda
2023-01-11 12:12     ` Veesam, RavitejaX
2023-02-06 12:35 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/9] drm/i915/display/core: use intel_de_rmw if possible (rev4) Patchwork
2023-02-06 16:11 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=Y7g+Cxdj9CdMga1e@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=andrzej.hajda@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

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

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