All of lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
	"Ankit Nautiyal" <ankit.k.nautiyal@intel.com>,
	"Dnyaneshwar Bhadane" <dnyaneshwar.bhadane@intel.com>,
	"Jouni Högander" <jouni.hogander@intel.com>,
	"Juha-pekka Heikkila" <juha-pekka.heikkila@intel.com>,
	"Luca Coelho" <luciano.coelho@intel.com>,
	"Lucas De Marchi" <lucas.demarchi@intel.com>,
	"Matt Atwood" <matthew.s.atwood@intel.com>,
	"Matt Roper" <matthew.d.roper@intel.com>,
	"Ravi Kumar Vodapalli" <ravi.kumar.vodapalli@intel.com>,
	"Shekhar Chauhan" <shekhar.chauhan@intel.com>,
	"Vinod Govindapillai" <vinod.govindapillai@intel.com>,
	"Suraj Kandpal" <suraj.kandpal@intel.com>
Subject: Re: [PATCH v5 2/8] drm/i915/power: Use intel_encoder_is_tc()
Date: Wed, 19 Nov 2025 15:35:16 +0200	[thread overview]
Message-ID: <aR3HlDZdn3AuPExd@ideak-desk> (raw)
In-Reply-To: <20251114-xe3p_lpd-basic-enabling-v5-2-c183388367f4@intel.com>

On Fri, Nov 14, 2025 at 05:52:09PM -0300, Gustavo Sousa wrote:
> Starting with Xe3p_LPD, when intel_phy_is_tc() returns true, it does
> not necessarily mean that the port is connected to a PHY in the Type-C
> subsystem.  The reason is that there is now a VBT field called
> dedicated_external that will indicate that a Type-C capable port is
> connected to a (most likely) combo/dedicated PHY.  When that's the case,
> we must not do the extra programming required for Type-C connections.
> 
> In an upcoming change, we will modify intel_encoder_is_tc() to take the
> VBT field dedicated_external into consideration.  Update
> intel_display_power_well.c to use that function instead of
> intel_phy_is_tc().
> 
> Note that, even though icl_aux_power_well_{enable,disable} are not part
> of Xe3p_LPD's display paths, we modify them anyway for uniformity.
> 
> v2:
>   - Add and use icl_aux_pw_is_tc_phy() helper to avoid explicit encoder
>     lookup. (Imre)
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Shekhar Chauhan <shekhar.chauhan@intel.com>
> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> # v1
> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>

Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  .../drm/i915/display/intel_display_power_well.c    | 33 +++++++++++++++-------
>  1 file changed, 23 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power_well.c b/drivers/gpu/drm/i915/display/intel_display_power_well.c
> index f4f7e73acc87..40d6b44c0b74 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power_well.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power_well.c
> @@ -258,8 +258,9 @@ aux_ch_to_digital_port(struct intel_display *display,
>  	return NULL;
>  }
>  
> -static enum phy icl_aux_pw_to_phy(struct intel_display *display,
> -				  const struct i915_power_well *power_well)
> +static struct intel_encoder *
> +icl_aux_pw_to_encoder(struct intel_display *display,
> +		      const struct i915_power_well *power_well)
>  {
>  	enum aux_ch aux_ch = icl_aux_pw_to_ch(power_well);
>  	struct intel_digital_port *dig_port = aux_ch_to_digital_port(display, aux_ch);
> @@ -271,7 +272,23 @@ static enum phy icl_aux_pw_to_phy(struct intel_display *display,
>  	 * as HDMI-only and routed to a combo PHY, the encoder either won't be
>  	 * present at all or it will not have an aux_ch assigned.
>  	 */
> -	return dig_port ? intel_encoder_to_phy(&dig_port->base) : PHY_NONE;
> +	return dig_port ? &dig_port->base : NULL;
> +}
> +
> +static enum phy icl_aux_pw_to_phy(struct intel_display *display,
> +				  const struct i915_power_well *power_well)
> +{
> +	struct intel_encoder *encoder = icl_aux_pw_to_encoder(display, power_well);
> +
> +	return encoder ? intel_encoder_to_phy(encoder) : PHY_NONE;
> +}
> +
> +static bool icl_aux_pw_is_tc_phy(struct intel_display *display,
> +				 const struct i915_power_well *power_well)
> +{
> +	struct intel_encoder *encoder = icl_aux_pw_to_encoder(display, power_well);
> +
> +	return encoder && intel_encoder_is_tc(encoder);
>  }
>  
>  static void hsw_wait_for_power_well_enable(struct intel_display *display,
> @@ -570,9 +587,7 @@ static void
>  icl_aux_power_well_enable(struct intel_display *display,
>  			  struct i915_power_well *power_well)
>  {
> -	enum phy phy = icl_aux_pw_to_phy(display, power_well);
> -
> -	if (intel_phy_is_tc(display, phy))
> +	if (icl_aux_pw_is_tc_phy(display, power_well))
>  		return icl_tc_phy_aux_power_well_enable(display, power_well);
>  	else if (display->platform.icelake)
>  		return icl_combo_phy_aux_power_well_enable(display,
> @@ -585,9 +600,7 @@ static void
>  icl_aux_power_well_disable(struct intel_display *display,
>  			   struct i915_power_well *power_well)
>  {
> -	enum phy phy = icl_aux_pw_to_phy(display, power_well);
> -
> -	if (intel_phy_is_tc(display, phy))
> +	if (icl_aux_pw_is_tc_phy(display, power_well))
>  		return hsw_power_well_disable(display, power_well);
>  	else if (display->platform.icelake)
>  		return icl_combo_phy_aux_power_well_disable(display,
> @@ -1852,7 +1865,7 @@ static void xelpdp_aux_power_well_enable(struct intel_display *display,
>  	enum aux_ch aux_ch = i915_power_well_instance(power_well)->xelpdp.aux_ch;
>  	enum phy phy = icl_aux_pw_to_phy(display, power_well);
>  
> -	if (intel_phy_is_tc(display, phy))
> +	if (icl_aux_pw_is_tc_phy(display, power_well))
>  		icl_tc_port_assert_ref_held(display, power_well,
>  					    aux_ch_to_digital_port(display, aux_ch));
>  
> 
> -- 
> 2.51.0
> 

  reply	other threads:[~2025-11-19 13:35 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-14 20:52 [PATCH v5 0/8] drm/i915/display: Add initial support for Xe3p_LPD Gustavo Sousa
2025-11-14 20:52 ` [PATCH v5 1/8] drm/i915/vbt: Add fields dedicated_external and dyn_port_over_tc Gustavo Sousa
2025-11-19 13:34   ` Imre Deak
2025-11-14 20:52 ` [PATCH v5 2/8] drm/i915/power: Use intel_encoder_is_tc() Gustavo Sousa
2025-11-19 13:35   ` Imre Deak [this message]
2025-11-14 20:52 ` [PATCH v5 3/8] drm/i915/display: Handle dedicated external ports in intel_encoder_is_tc() Gustavo Sousa
2025-11-19 13:36   ` Imre Deak
2025-11-14 20:52 ` [PATCH v5 4/8] drm/i915/xe3p_lpd: Handle underrun debug bits Gustavo Sousa
2025-11-19 19:06   ` Matt Roper
2025-11-21 23:20     ` Matt Atwood
2025-11-14 20:52 ` [PATCH v5 5/8] drm/i915/nvls: Add NVL-S display support Gustavo Sousa
2025-11-14 20:52 ` [PATCH v5 6/8] drm/i915/display: Use platform check in HAS_LT_PHY() Gustavo Sousa
2025-11-14 20:52 ` [PATCH v5 7/8] drm/i915/display: Move HAS_LT_PHY() to intel_display_device.h Gustavo Sousa
2025-11-14 20:52 ` [PATCH v5 8/8] drm/i915/display: Use HAS_LT_PHY() for LT PHY AUX power Gustavo Sousa
2025-11-14 21:09 ` ✗ CI.checkpatch: warning for drm/i915/display: Add initial support for Xe3p_LPD (rev5) Patchwork
2025-11-14 21:10 ` ✓ CI.KUnit: success " Patchwork
2025-11-14 21:26 ` ✗ CI.checksparse: warning " Patchwork
2025-11-15  6:34 ` ✗ Xe.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=aR3HlDZdn3AuPExd@ideak-desk \
    --to=imre.deak@intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=dnyaneshwar.bhadane@intel.com \
    --cc=gustavo.sousa@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jouni.hogander@intel.com \
    --cc=juha-pekka.heikkila@intel.com \
    --cc=lucas.demarchi@intel.com \
    --cc=luciano.coelho@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=matthew.s.atwood@intel.com \
    --cc=ravi.kumar.vodapalli@intel.com \
    --cc=shekhar.chauhan@intel.com \
    --cc=suraj.kandpal@intel.com \
    --cc=vinod.govindapillai@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.