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: 33+ 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 7:34 ` ✓ i915.CI.BAT: " Patchwork
2026-09-18 8:01 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-18 14:16 ` ✗ i915.CI.Full: failure " Patchwork
2026-09-18 16:17 ` ✓ Xe.CI.FULL: success " 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 3:18 ` ✓ i915.CI.BAT: success " Patchwork
2026-09-21 4:39 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-09-21 5:15 ` ✗ i915.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 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.