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
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox