All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/dpio: have chv_data_lane_soft_reset() get/put dpio internally
Date: Fri, 11 Apr 2025 16:41:43 +0300	[thread overview]
Message-ID: <Z_kcF7u9DO7_FIiP@intel.com> (raw)
In-Reply-To: <20250411102715.613082-1-jani.nikula@intel.com>

On Fri, Apr 11, 2025 at 01:27:15PM +0300, Jani Nikula wrote:
> Have chv_data_lane_soft_reset() get/put dpio internally, and use a
> locked version of it within intel_dpio_phy.c. This drops the dependency
> on vlv sideband from g4x_dp.c and g4x_hdmi.c, and makes that a DPIO PHY
> implementation detail.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/display/g4x_dp.c         |  7 -------
>  drivers/gpu/drm/i915/display/g4x_hdmi.c       |  8 -------
>  drivers/gpu/drm/i915/display/intel_dpio_phy.c | 21 ++++++++++++++-----
>  3 files changed, 16 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
> index b39aae9165df..18e51799d2a6 100644
> --- a/drivers/gpu/drm/i915/display/g4x_dp.c
> +++ b/drivers/gpu/drm/i915/display/g4x_dp.c
> @@ -28,7 +28,6 @@
>  #include "intel_hotplug.h"
>  #include "intel_pch_display.h"
>  #include "intel_pps.h"
> -#include "vlv_sideband.h"
>  
>  static const struct dpll g4x_dpll[] = {
>  	{ .dot = 162000, .p1 = 2, .p2 = 10, .n = 2, .m1 = 23, .m2 = 8, },
> @@ -581,16 +580,10 @@ static void chv_post_disable_dp(struct intel_atomic_state *state,
>  				const struct intel_crtc_state *old_crtc_state,
>  				const struct drm_connector_state *old_conn_state)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -
>  	intel_dp_link_down(encoder, old_crtc_state);
>  
> -	vlv_dpio_get(dev_priv);
> -
>  	/* Assert data lane reset */
>  	chv_data_lane_soft_reset(encoder, old_crtc_state, true);
> -
> -	vlv_dpio_put(dev_priv);
>  }
>  
>  static void
> diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> index 3dc2c59a3df0..21b5db2fa203 100644
> --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> @@ -22,7 +22,6 @@
>  #include "intel_hdmi.h"
>  #include "intel_hotplug.h"
>  #include "intel_sdvo.h"
> -#include "vlv_sideband.h"
>  
>  static void intel_hdmi_prepare(struct intel_encoder *encoder,
>  			       const struct intel_crtc_state *crtc_state)
> @@ -539,15 +538,8 @@ static void chv_hdmi_post_disable(struct intel_atomic_state *state,
>  				  const struct intel_crtc_state *old_crtc_state,
>  				  const struct drm_connector_state *old_conn_state)
>  {
> -	struct intel_display *display = to_intel_display(encoder);
> -	struct drm_i915_private *dev_priv = to_i915(display->drm);
> -
> -	vlv_dpio_get(dev_priv);
> -
>  	/* Assert data lane reset */
>  	chv_data_lane_soft_reset(encoder, old_crtc_state, true);
> -
> -	vlv_dpio_put(dev_priv);
>  }
>  
>  static void chv_hdmi_pre_enable(struct intel_atomic_state *state,
> diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> index 429f89543789..1e1af7150723 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> @@ -808,9 +808,9 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder,
>  	vlv_dpio_put(dev_priv);
>  }
>  
> -void chv_data_lane_soft_reset(struct intel_encoder *encoder,
> -			      const struct intel_crtc_state *crtc_state,
> -			      bool reset)
> +static void __chv_data_lane_soft_reset(struct intel_encoder *encoder,
> +				       const struct intel_crtc_state *crtc_state,
> +				       bool reset)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> @@ -853,6 +853,17 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder,
>  	}
>  }
>  
> +void chv_data_lane_soft_reset(struct intel_encoder *encoder,
> +			      const struct intel_crtc_state *crtc_state,
> +			      bool reset)
> +{
> +	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> +
> +	vlv_dpio_get(i915);
> +	__chv_data_lane_soft_reset(encoder, crtc_state, reset);
> +	vlv_dpio_put(i915);
> +}
> +
>  void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
>  			    const struct intel_crtc_state *crtc_state)
>  {
> @@ -880,7 +891,7 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
>  	vlv_dpio_get(dev_priv);
>  
>  	/* Assert data lane reset */
> -	chv_data_lane_soft_reset(encoder, crtc_state, true);
> +	__chv_data_lane_soft_reset(encoder, crtc_state, true);
>  
>  	/* program left/right clock distribution */
>  	if (pipe != PIPE_B) {
> @@ -1008,7 +1019,7 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder,
>  	}
>  
>  	/* Deassert data lane reset */
> -	chv_data_lane_soft_reset(encoder, crtc_state, false);
> +	__chv_data_lane_soft_reset(encoder, crtc_state, false);
>  
>  	vlv_dpio_put(dev_priv);
>  }
> -- 
> 2.39.5

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2025-04-11 13:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-11 10:27 [PATCH] drm/i915/dpio: have chv_data_lane_soft_reset() get/put dpio internally Jani Nikula
2025-04-11 10:27 ` Jani Nikula
2025-04-11 13:41 ` Ville Syrjälä [this message]
2025-04-14 17:45   ` Jani Nikula
2025-04-14 14:09 ` ✗ Fi.CI.SPARSE: warning for " Patchwork
2025-04-14 14:36 ` ✓ i915.CI.BAT: success " Patchwork
2025-04-14 17:29 ` ✗ i915.CI.Full: failure " 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=Z_kcF7u9DO7_FIiP@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    /path/to/YOUR_REPLY

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

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