From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Chang Jiong(常炯)" <xspeed1989@gmail.com>,
intel-gfx@lists.freedesktop.org
Cc: "Chang Jiong(常炯)" <xspeed1989@gmail.com>,
stable@vger.kernel.org, "Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
"Tvrtko Ursulin" <tursulin@ursulin.net>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Michał Grzelak" <michal.grzelak@intel.com>,
"open list:INTEL DRM DISPLAY FOR XE AND I915 DRIVERS"
<intel-xe@lists.freedesktop.org>,
"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
"open list" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] drm/i915/cdclk: Don't force cd2x pipe select on Xe3 in bxt_sanitize_cdclk()
Date: Tue, 18 Aug 2026 10:58:54 +0300 [thread overview]
Message-ID: <c4dead5d0527e305f44ddb943f95e9967ec1911f@intel.com> (raw)
In-Reply-To: <20260816062344.796615-1-xspeed1989@gmail.com>
On Sun, 16 Aug 2026, Chang Jiong(常炯) <xspeed1989@gmail.com> wrote:
> Since commit 2ee8dbd880b1 ("drm/i915/cdclk: Fix up CDCLK_FREQ_DECIMAL
> without a full PLL re-enable") bxt_sanitize_cdclk() normalizes the
> CD2X pipe select field of the CDCLK_CTL readback to PIPE_NONE before
> comparing against the expected value.
>
> However bxt_cdclk_ctl() does not include the CD2X pipe select field
> at all on DISPLAY_VER() >= 30, so on Xe3 (PTL) the normalized
> readback (pipe field forced to the PIPE_NONE encoding, 0b111) can
> never match the expected value (pipe field 0). The comparison now
> fails on every boot and we always take the full CDCLK PLL
> disable+re-enable path with the BIOS framebuffer actively scanning
> out - exactly what this code was trying to avoid. On a Panther Lake
> laptop (Arc B390, 8086:b080, eDP 3120x2080@120) this causes
> "CPU pipe A FIFO underrun" during probe and persistent full-screen
> scanout corruption for the first KMS client (the SDDM greeter);
> the corruption lasts until the next full modeset.
>
> Only normalize the CD2X pipe select field on platforms where
> bxt_cdclk_ctl() actually programs it, mirroring its DISPLAY_VER()
> check.
>
> Fixes: 2ee8dbd880b1 ("drm/i915/cdclk: Fix up CDCLK_FREQ_DECIMAL without a full PLL re-enable")
> Cc: stable@vger.kernel.org
> Signed-off-by: Chang Jiong(常炯) <xspeed1989@gmail.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8550
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8569
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8901
The first one has a patch from Ville that is identical to this one.
I'll try to kick CI to get this tested before merging.
> ---
> v2: No code changes. Resent with From matching Signed-off-by
> (v1 was sent from 304750714@qq.com, which is not on the
> Intel CI allowlist).
>
> drivers/gpu/drm/i915/display/intel_cdclk.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index 7bc9b956554b..0438f5ac78c0 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -2366,8 +2366,10 @@ static void bxt_sanitize_cdclk(struct intel_display *display)
> * dividers both syncing to an active pipe, or asynchronously
> * (PIPE_NONE).
> */
> - cdctl &= ~bxt_cdclk_cd2x_pipe(display, INVALID_PIPE);
> - cdctl |= bxt_cdclk_cd2x_pipe(display, INVALID_PIPE);
> + if (DISPLAY_VER(display) < 30) {
> + cdctl &= ~bxt_cdclk_cd2x_pipe(display, INVALID_PIPE);
> + cdctl |= bxt_cdclk_cd2x_pipe(display, INVALID_PIPE);
> + }
>
> if (cdctl != expected) {
> if (DISPLAY_VER(display) < 20) {
--
Jani Nikula, Intel
next prev parent reply other threads:[~2026-08-18 7:59 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-15 12:25 [PATCH] drm/i915/cdclk: Don't force cd2x pipe select on Xe3 in bxt_sanitize_cdclk() Chang Jiong(常炯)
2026-08-15 15:52 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
2026-08-15 16:05 ` Patchwork
2026-08-16 6:23 ` [PATCH v2] " Chang Jiong(常炯)
2026-08-17 21:59 ` Zhefu Zhang
2026-08-18 7:58 ` Jani Nikula [this message]
2026-08-19 9:33 ` Jani Nikula
2026-08-18 12:27 ` Chang Jiong(常炯)
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=c4dead5d0527e305f44ddb943f95e9967ec1911f@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=airlied@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=joonas.lahtinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.grzelak@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=stable@vger.kernel.org \
--cc=tursulin@ursulin.net \
--cc=ville.syrjala@linux.intel.com \
--cc=xspeed1989@gmail.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.