From: Imre Deak <imre.deak@intel.com>
To: Suraj Kandpal <suraj.kandpal@intel.com>
Cc: <intel-xe@lists.freedesktop.org>,
<intel-gfx@lists.freedesktop.org>, <ankit.k.nautiyal@intel.com>,
<arun.r.murthy@intel.com>, <uma.shankar@intel.com>,
<swati2.sharma@intel.com>,
Ramanaidu Naladala <ramanaidu.naladala@intel.com>
Subject: Re: [PATCH v2] drm/i915/dp: Disable DC5/6 before AUX programming
Date: Fri, 18 Sep 2026 18:09:08 +0300 [thread overview]
Message-ID: <aq1UFD8toza-u2pl@ideak-desk.lan> (raw)
In-Reply-To: <20260918063829.1321703-1-suraj.kandpal@intel.com>
On Fri, Sep 18, 2026 at 12:08:29PM +0530, Suraj Kandpal wrote:
> From Xe2Lpd we removed the step to disable DC5/6 because as per Bspec
> for SNPS PHY Aux will be always up. But from Xe3p LT PHY was introduced
> which powers down the PHY. Which means we need to make sure
> "Disable DC5/6" of AUX Programming sequence is honored.
> Disable Dc5/6 when programming AUX.
>
> Bspec: 68851, 68967
> Co-developed-by: Ramanaidu Naladala <ramanaidu.naladala@intel.com>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
> v1 -> v2:
> -Fix commit message (Arun)
> -Fix the if typo (Arun, Sashiko)
>
> drivers/gpu/drm/i915/display/intel_dp_aux.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> index 3cb07b0a901c..879b203f9258 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> @@ -260,6 +260,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
> u32 aux_clock_divider;
> enum intel_display_power_domain aux_domain;
> struct ref_tracker *aux_wakeref;
> + struct ref_tracker *dc_off_wakeref = NULL;
> struct ref_tracker *pps_wakeref = NULL;
> int i, ret, recv_bytes;
> int try, clock = 0;
> @@ -286,6 +287,9 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
>
> aux_wakeref = intel_display_power_get(display, aux_domain);
>
> + if (HAS_LT_PHY(display))
> + dc_off_wakeref = intel_display_power_get(display, POWER_DOMAIN_DC_OFF);
Please don't do this. There is already a way to enable all dependent
power wells for a power domain, in this case for the above AUX domain,
which would do the correct thing whenever the AUX domain is enabled; as
opposed to the above special casing of the AUX transfer. For NVL+
setting that dependency would be something like:
I915_DECL_PW_DOMAINS(nvl_pwdoms_dc_off,
POWER_DOMAIN_DC_OFF,
XE3LPD_PW_2_POWER_DOMAINS,
XE3LPD_PW_C_POWER_DOMAINS,
XE3LPD_PW_D_POWER_DOMAINS,
POWER_DOMAIN_AUDIO_MMIO,
POWER_DOMAIN_AUDIO_PLAYBACK,
POWER_DOMAIN_AUX_A, \
POWER_DOMAIN_AUX_B, \
POWER_DOMAIN_AUX_USBC1, \
POWER_DOMAIN_AUX_USBC2, \
POWER_DOMAIN_AUX_USBC3, \
POWER_DOMAIN_AUX_USBC4, \
POWER_DOMAIN_AUX_TBT1, \
POWER_DOMAIN_AUX_TBT2, \
POWER_DOMAIN_AUX_TBT3, \
POWER_DOMAIN_AUX_TBT4, \
POWER_DOMAIN_INIT);
static const struct i915_power_well_desc nvl_power_wells_dcoff[] = {
{
.instances = &I915_PW_INSTANCES(
I915_PW("DC_off", &nvl_pwdoms_dc_off,
.id = SKL_DISP_DC_OFF),
),
.ops = &gen9_dc_off_power_well_ops,
},
};
static const struct i915_power_well_desc_list nvl_power_wells[] = {
I915_PW_DESCRIPTORS(i9xx_power_wells_always_on),
I915_PW_DESCRIPTORS(icl_power_wells_pw_1),
I915_PW_DESCRIPTORS(nvl_power_wells_dcoff),
I915_PW_DESCRIPTORS(xe3lpd_power_wells_main),
I915_PW_DESCRIPTORS(xe2lpd_power_wells_pica),
I915_PW_DESCRIPTORS(xelpdp_power_wells_aux),
};
and using nvl_power_wells[] on NVL and platforms with the above DC_OFF
dependency.
> +
> /*
> * The PPS state needs to be locked for:
> * - eDP on all platforms, since AUX transfers on eDP need VDD power
> @@ -459,6 +463,9 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
> if (pps_wakeref)
> intel_pps_unlock(intel_dp, pps_wakeref);
>
> + if (dc_off_wakeref)
> + intel_display_power_put(display, POWER_DOMAIN_DC_OFF, dc_off_wakeref);
> +
> intel_display_power_put_async(display, aux_domain, aux_wakeref);
> out_unlock:
> intel_digital_port_unlock(encoder);
> --
> 2.34.1
>
next prev parent reply other threads:[~2026-09-18 15:09 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 6:04 [PATCH] drm/i915/dp: Disable DC5/6 before AUX programming Suraj Kandpal
2026-09-18 6:10 ` ✗ CI.checkpatch: warning for " Patchwork
2026-09-18 6:10 ` [PATCH] " sashiko-bot
2026-09-18 6:12 ` ✓ CI.KUnit: success for " Patchwork
2026-09-18 6:22 ` [PATCH] " Murthy, Arun R
2026-09-18 6:35 ` Murthy, Arun R
2026-09-18 6:38 ` [PATCH v2] " Suraj Kandpal
2026-09-18 6:46 ` sashiko-bot
2026-09-18 7:59 ` Murthy, Arun R
2026-09-18 10:08 ` Jani Nikula
2026-09-18 16:40 ` Kandpal, Suraj
2026-09-18 15:09 ` Imre Deak [this message]
2026-09-18 16:40 ` Kandpal, Suraj
2026-09-18 6:44 ` ✗ CI.checkpatch: warning for drm/i915/dp: Disable DC5/6 before AUX programming (rev2) Patchwork
2026-09-18 6:46 ` ✓ CI.KUnit: success " Patchwork
2026-09-18 8:01 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-18 16:17 ` ✓ Xe.CI.FULL: " Patchwork
2026-09-21 2:20 ` [PATCH] drm/i915/xe3plpd: Map AUX power domains to DC_off Suraj Kandpal
2026-09-21 7:25 ` Kandpal, Suraj
2026-09-21 8:14 ` Jani Nikula
2026-09-22 3:39 ` Murthy, Arun R
2026-09-21 2:26 ` ✗ CI.checkpatch: warning for drm/i915/dp: Disable DC5/6 before AUX programming (rev3) Patchwork
2026-09-21 2:28 ` ✓ CI.KUnit: success " Patchwork
2026-09-21 3:06 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-09-21 4:39 ` ✗ Xe.CI.FULL: " Patchwork
2026-09-21 5:49 ` ✗ CI.checkpatch: warning for drm/i915/dp: Disable DC5/6 before AUX programming (rev4) Patchwork
2026-09-21 5:51 ` ✓ CI.KUnit: success " Patchwork
2026-09-21 7:02 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-09-21 8:36 ` ✗ Xe.CI.FULL: " 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=aq1UFD8toza-u2pl@ideak-desk.lan \
--to=imre.deak@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=arun.r.murthy@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=ramanaidu.naladala@intel.com \
--cc=suraj.kandpal@intel.com \
--cc=swati2.sharma@intel.com \
--cc=uma.shankar@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