All of lore.kernel.org
 help / color / mirror / Atom feed
From: Clint Taylor <Clinton.A.Taylor@intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 2/5] drm/i915/adl_p: Handle TC cold
Date: Mon, 24 May 2021 15:24:27 -0700	[thread overview]
Message-ID: <2d3d2031-b96e-bb48-bdd9-a373893f0e99@intel.com> (raw)
In-Reply-To: <20210524214805.259692-2-jose.souza@intel.com>


On 5/24/21 2:48 PM, José Roberto de Souza wrote:
> On ADL-P TC cold is exited and blocked when legacy aux is powered,
> that is exacly the same of what ICL need for static TC ports.
>
> TODO: When a TBT hub or monitor is connected it will cause TBT and
> legacy aux to be powered at the same time, hopefully this will not
> cause any issues but if it do, some rework will be needed.
>
> v2:
>   - skip icl_tc_port_assert_ref_held() warn on, adl-p uses aux to
>     block TC cold
>
> v3:
>   - Drop icl_tc_port_assert_ref_held() earlier return for adl_p, not
>     needed anymore
>   - Set timeout_expected when enabling aux power well as port could be
>     disconnected when tc_cold_block() is called
>
> BSpec: 55480
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Clinton Taylor <Clinton.A.Taylor@intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_display_power.c |  6 ++----
>   drivers/gpu/drm/i915/display/intel_tc.c            | 14 ++++++++++----
>   drivers/gpu/drm/i915/display/intel_tc.h            |  2 ++
>   3 files changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 991ceea06a07..2f7d1664c473 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -619,11 +619,9 @@ icl_tc_phy_aux_power_well_enable(struct drm_i915_private *dev_priv,
>   	 * or need to enable AUX on a legacy TypeC port as part of the TC-cold
>   	 * exit sequence.
>   	 */
> -	timeout_expected = is_tbt;
> -	if (DISPLAY_VER(dev_priv) == 11 && dig_port->tc_legacy_port) {
> +	timeout_expected = is_tbt || intel_tc_cold_requires_aux_pw(dig_port);
> +	if (DISPLAY_VER(dev_priv) == 11 && dig_port->tc_legacy_port)
>   		icl_tc_cold_exit(dev_priv);
> -		timeout_expected = true;
> -	}
>   
>   	hsw_wait_for_power_well_enable(dev_priv, power_well, timeout_expected);
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
> index db85e0e2031e..c23c210a55f5 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.c
> +++ b/drivers/gpu/drm/i915/display/intel_tc.c
> @@ -26,9 +26,7 @@ static const char *tc_port_mode_name(enum tc_port_mode mode)
>   static enum intel_display_power_domain
>   tc_cold_get_power_domain(struct intel_digital_port *dig_port)
>   {
> -	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> -
> -	if (DISPLAY_VER(i915) == 11)
> +	if (intel_tc_cold_requires_aux_pw(dig_port))
>   		return intel_legacy_aux_to_power_domain(dig_port->aux_ch);
>   	else
>   		return POWER_DOMAIN_TC_COLD_OFF;
> @@ -564,7 +562,7 @@ static void intel_tc_port_reset_mode(struct intel_digital_port *dig_port,
>   	enum tc_port_mode old_tc_mode = dig_port->tc_mode;
>   
>   	intel_display_power_flush_work(i915);
> -	if (DISPLAY_VER(i915) != 11 || !dig_port->tc_legacy_port) {
> +	if (!intel_tc_cold_requires_aux_pw(dig_port)) {
>   		enum intel_display_power_domain aux_domain;
>   		bool aux_powered;
>   
> @@ -781,3 +779,11 @@ void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy)
>   	dig_port->tc_link_refcount = 0;
>   	tc_port_load_fia_params(i915, dig_port);
>   }
> +
> +bool intel_tc_cold_requires_aux_pw(struct intel_digital_port *dig_port)
> +{
> +	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +
> +	return (DISPLAY_VER(i915) == 11 && dig_port->tc_legacy_port) ||
> +		IS_ALDERLAKE_P(i915);
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.h b/drivers/gpu/drm/i915/display/intel_tc.h
> index b619e4736f85..0eacbd76ec15 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.h
> +++ b/drivers/gpu/drm/i915/display/intel_tc.h
> @@ -29,4 +29,6 @@ bool intel_tc_port_ref_held(struct intel_digital_port *dig_port);
>   
>   void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy);
>   
> +bool intel_tc_cold_requires_aux_pw(struct intel_digital_port *dig_port);
> +
>   #endif /* __INTEL_TC_H__ */

Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com>

-Clint



_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2021-05-24 22:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-24 21:48 [Intel-gfx] [PATCH 1/5] drm/i915/display/adl_p: Drop earlier return in tc_has_modular_fia() José Roberto de Souza
2021-05-24 21:48 ` [Intel-gfx] [PATCH 2/5] drm/i915/adl_p: Handle TC cold José Roberto de Souza
2021-05-24 22:24   ` Clint Taylor [this message]
2021-05-24 21:48 ` [Intel-gfx] [PATCH 3/5] drm/i915: WA for zero memory channel José Roberto de Souza
2021-05-24 22:25   ` Clint Taylor
2021-05-24 21:48 ` [Intel-gfx] [PATCH 4/5] drm/i915/display/adl_p: Allow DC3CO in pipe and port B José Roberto de Souza
2021-05-24 22:28   ` Clint Taylor
2021-05-24 21:48 ` [Intel-gfx] [PATCH 5/5] drm/i915/display/adl_p: Disable PSR2 José Roberto de Souza
2021-05-24 22:28   ` Clint Taylor
2021-05-25 10:55   ` Jani Nikula
2021-05-25 17:31     ` Souza, Jose
2021-05-24 22:23 ` [Intel-gfx] [PATCH 1/5] drm/i915/display/adl_p: Drop earlier return in tc_has_modular_fia() Clint Taylor
2021-05-24 23:01 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/5] " Patchwork
2021-05-24 23:25 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-05-25  6:30 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2021-05-25 17:31   ` Souza, Jose

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=2d3d2031-b96e-bb48-bdd9-a373893f0e99@intel.com \
    --to=clinton.a.taylor@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jose.souza@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.