From: sashiko-bot@kernel.org
To: "Ankit Nautiyal" <ankit.k.nautiyal@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v5 06/12] drm/i915/dip: Store and use AS SDP transmission line from crtc state
Date: Tue, 08 Sep 2026 07:09:10 +0000 [thread overview]
Message-ID: <20260908070911.26FE81F00A3D@smtp.kernel.org> (raw)
In-Reply-To: <20260908062224.2897987-7-ankit.k.nautiyal@intel.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Spurious state mismatch warnings for dip.emp_as_sdp_tl due to unconditional hardware readout of stale register values.
- [Medium] Unconditional fastset check for `dip.emp_as_sdp_tl` breaks seamless Link Refresh Rate (LRR) updates, forcing heavy full modesets.
--
commit fdc12bb4795c43a7d04cbec4746e152e2a99a6d8
Author: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
drm/i915/dip: Store and use AS SDP transmission line from crtc state
This commit moves the computation of the Adaptive Sync SDP transmission
line from programming time to the crtc state computation phase. It stores
the value in the crtc state to be used when programming the EMP_AS_SDP_TL
register, preparing for programmable transmission lines for other DP SDPs.
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
[ ... ]
> @@ -4235,6 +4236,7 @@ static void intel_ddi_get_config(struct intel_encoder *encoder,
> intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA);
> intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC);
> intel_read_dp_sdp(encoder, pipe_config, DP_SDP_ADAPTIVE_SYNC);
> + intel_dip_sdp_transmission_line_get_config(pipe_config);
[Severity: Medium]
Could this unconditional hardware readout capture stale values and cause
spurious state mismatch warnings?
intel_dip_sdp_transmission_line_get_config() unconditionally reads the
EMP_AS_SDP_TL hardware register. If the encoder is HDMI, or if VRR was
disabled, the computed software state leaves dip.emp_as_sdp_tl = 0.
However, when VRR is disabled, intel_vrr_set_transcoder_timings() in
drivers/gpu/drm/i915/display/intel_vrr.c returns early and never clears
EMP_AS_SDP_TL. This leaves a stale non-zero value in the hardware register
from a previous DP modeset.
Could this mismatch cause intel_pipe_config_compare() to fail, incorrectly
forcing an unnecessary full modeset instead of a fastset?
> diff --git a/drivers/gpu/drm/i915/display/intel_dip.c b/drivers/gpu/drm/i915/display/intel_dip.c
> --- a/drivers/gpu/drm/i915/display/intel_dip.c
> +++ b/drivers/gpu/drm/i915/display/intel_dip.c
[ ... ]
> +void intel_dip_sdp_tl_compute_config_late(struct intel_crtc_state *crtc_state)
> +{
> + crtc_state->dip.emp_as_sdp_tl = intel_dip_get_as_sdp_transmission_line(crtc_state);
> +}
[Severity: Medium]
Does computing and checking this transmission line state break seamless
Link Refresh Rate (LRR) updates?
LRR is designed to perform seamless refresh rate transitions without screen
blanking. The intel_pipe_config_compare() function in intel_display.c
ignores vrr.vsync_start differences during a fastset because it is
explicitly guarded by an if (!fastset) condition.
Because dip.emp_as_sdp_tl is computed directly from vrr.vsync_start, and
its corresponding state check (PIPE_CONF_CHECK_I) runs outside the
!fastset block, an LRR transition that naturally alters the vtotal and
vsync_start will produce a mismatch.
Will this erroneously fail the fastset check and force a heavy full modeset
instead of a seamless transition?
> +
> +void intel_dip_sdp_transmission_line_get_config(struct intel_crtc_state *crtc_state)
> +{
> + crtc_state->dip.emp_as_sdp_tl = intel_dip_read_emp_as_sdp_tl(crtc_state);
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260908062224.2897987-1-ankit.k.nautiyal@intel.com?part=6
next prev parent reply other threads:[~2026-09-08 7:09 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-08 6:22 [PATCH v5 00/12] Add support for Common SDP Transmission Line Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 01/12] drm/i915/dip: Add new file to handle Data Island Packet hardware Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 02/12] drm/i915/vrr: Use the helper to write EMP_AS_SDP_TL register Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 03/12] drm/i915/intel_dip: Add check for DP encoder Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 04/12] drm/i915/dip: Add helper to get AS SDP Transmission Line Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 05/12] drm/i915/display: Add crtc state for DIP transmission lines Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 06/12] drm/i915/dip: Store and use AS SDP transmission line from crtc state Ankit Nautiyal
2026-09-08 7:09 ` sashiko-bot [this message]
2026-09-10 2:47 ` Nautiyal, Ankit K
2026-09-08 6:22 ` [PATCH v5 07/12] drm/i915/dip_regs: Add register definitions for common SDP Transmission Line Ankit Nautiyal
2026-09-08 7:49 ` Kandpal, Suraj
2026-09-08 6:22 ` [PATCH v5 08/12] drm/i915/dip: Add HAS_COMMON_SDP_TL macro Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 09/12] drm/i915/dip: Store SDP transmission lines in crtc_state Ankit Nautiyal
2026-09-08 7:50 ` Kandpal, Suraj
2026-09-08 6:22 ` [PATCH v5 10/12] drm/i915/dp: Introduce helpers to enable/disable CMN SDP Transmission line Ankit Nautiyal
2026-09-08 7:12 ` sashiko-bot
2026-09-10 2:48 ` Nautiyal, Ankit K
2026-09-08 6:22 ` [PATCH v5 11/12] drm/i915/dip: Enable Common " Ankit Nautiyal
2026-09-08 7:11 ` sashiko-bot
2026-09-10 4:49 ` Nautiyal, Ankit K
2026-09-08 8:10 ` Kandpal, Suraj
2026-09-10 4:54 ` Nautiyal, Ankit K
2026-09-08 6:22 ` [PATCH v5 12/12] drm/i915/display: Dump DIP Transmission lines Ankit Nautiyal
2026-09-08 8:03 ` Kandpal, Suraj
2026-09-08 6:57 ` ✗ CI.checkpatch: warning for Add support for Common SDP Transmission Line (rev5) Patchwork
2026-09-08 6:59 ` ✓ CI.KUnit: success " Patchwork
2026-09-08 7:47 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-08 8:57 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-09-08 9:52 ` ✗ i915.CI.BAT: " 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=20260908070911.26FE81F00A3D@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.