From: Cole Leavitt <cole@unwrap.rs>
To: arun.r.murthy@intel.com
Cc: intel-gfx@lists.freedesktop.org, suraj.kandpal@intel.com,
jani.nikula@intel.com, Cole Leavitt <cole@unwrap.rs>
Subject: Re: [PATCH v2 1/2] drm/i915/cx0_phy_regs: Include SoC and OS turnaround time
Date: Sat, 14 Feb 2026 01:48:04 -0700 [thread overview]
Message-ID: <20260214084804.7563-1-cole@unwrap.rs> (raw)
In-Reply-To: <20260212-timeout-v2-1-74bccad5018d@intel.com>
On Wed, 12 Feb 2026, Arun R Murthy <arun.r.murthy@intel.com> wrote:
> The port refclk enable timeout and the soc ready timeout value mentioned
> in the spec is the PHY timings and doesn't include the turnaround time
> from the SoC or OS. So add an overhead timeout value on top of the
> recommended timeouts from the PHY spec.
Hi Arun,
Thanks for the fix. I wanted to flag that I independently identified
this exact issue and posted a detailed root cause analysis on the i915
GitLab tracker five days before this patch series.
On February 7, 2026, I filed the analysis on GitLab issue #14713:
https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14713#note_2739573
That comment includes the following findings, which directly correspond
to what this patch addresses:
1. Traced the error to intel_cx0_phy_lane_reset() in intel_cx0_phy.c
(line ~2911), where the driver writes the PCLK_REFCLK_REQUEST bit to
XELPDP_PORT_CLOCK_CTL and polls for PCLK_REFCLK_ACK with a timeout
of XELPDP_REFCLK_ENABLE_TIMEOUT_US = 1 (1 us).
2. Identified that this calls __intel_wait_for_register() with
fast_timeout_us=1 and slow_timeout_ms=0 -- a single spin-poll with
no slow-path fallback.
3. Compared the 1 us refclk timeout against other timeouts in the same
PHY init sequence:
XELPDP_PORT_BUF_SOC_READY_TIMEOUT_US = 100 us
XELPDP_PORT_RESET_START_TIMEOUT_US = 5 us
XELPDP_PCLK_PLL_ENABLE_TIMEOUT_US = 3200 us
XELPDP_PORT_RESET_END_TIMEOUT_MS = 15 ms
The 1 us value is an outlier by 1-3 orders of magnitude compared to
every other timeout in the same code path.
4. Recommended increasing XELPDP_REFCLK_ENABLE_TIMEOUT_US to ~100 us
or adding a slow-path ms fallback, consistent with how other waits
in the same function are structured.
This analysis was performed on a Lenovo ThinkPad P16 Gen 3 with an
Arrow Lake-S Core Ultra 9 275HX (device ID 7d67) running kernel
6.19.0-rc8. The PHY A refclk failure reproduced on every boot at ~8.5s
after i915 init, during the eDP panel probe path.
Your patch does the right thing -- increasing the timeout values and
adding SoC/OS overhead. Since my analysis identified the root cause and
recommended the same fix direction, I'd appreciate attribution:
Reported-by: Cole Leavitt <cole@unwrap.rs>
Thanks,
Cole
next prev parent reply other threads:[~2026-02-17 13:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-12 6:34 [PATCH v2 0/2] Update the PHY timeouts Arun R Murthy
2026-02-12 6:34 ` [PATCH v2 1/2] drm/i915/cx0_phy_regs: Include SoC and OS turnaround time Arun R Murthy
2026-02-14 8:48 ` Cole Leavitt [this message]
2026-02-16 4:53 ` Murthy, Arun R
2026-02-12 6:34 ` [PATCH v2 2/2] drm/i915/lt_phy_regs: Add SoC/OS " Arun R Murthy
2026-02-12 8:06 ` ✗ i915.CI.BAT: failure for Update the PHY timeouts (rev2) 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=20260214084804.7563-1-cole@unwrap.rs \
--to=cole@unwrap.rs \
--cc=arun.r.murthy@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=suraj.kandpal@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