From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "Kandpal, Suraj" <suraj.kandpal@intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 06/16] drm/i915/de: Use intel_de_wait_ms() for the obvious cases
Date: Tue, 11 Nov 2025 19:41:23 +0200 [thread overview]
Message-ID: <aRN1Q5ygV91CiVf4@intel.com> (raw)
In-Reply-To: <IA3PR11MB8937335A53E8777022F4358FE3CFA@IA3PR11MB8937.namprd11.prod.outlook.com>
On Tue, Nov 11, 2025 at 04:32:17AM +0000, Kandpal, Suraj wrote:
> > Subject: [PATCH 06/16] drm/i915/de: Use intel_de_wait_ms() for the obvious
> > cases
> >
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Replace some users of intel_de_wait_custom() with intel_de_wait_ms().
> >
> > This includes the cases where we pass in the default 2 microsecond fast
> > timeout, which is also what intel_de_wait_ms() uses so there are no functional
> > changes here.
> >
> > Done with cocci (with manual formatting fixes):
> > @@
> > expression display, reg, mask, value, timeout_ms, out_value; @@
> > - intel_de_wait_custom(display, reg, mask, value, 2, timeout_ms, out_value)
> > + intel_de_wait_ms(display, reg, mask, value, timeout_ms, out_value)
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_cx0_phy.c | 15 ++++-----
> > drivers/gpu/drm/i915/display/intel_dp_aux.c | 6 ++--
> > drivers/gpu/drm/i915/display/intel_hdcp.c | 5 ++-
> > drivers/gpu/drm/i915/display/intel_lt_phy.c | 32 +++++++++----------
> > drivers/gpu/drm/i915/display/intel_pmdemand.c | 6 ++--
> > 5 files changed, 30 insertions(+), 34 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> > b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> > index af97bd42495b..55fd95994ea7 100644
> > --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> > +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> > @@ -164,11 +164,10 @@ int intel_cx0_wait_for_ack(struct intel_encoder
> > *encoder,
> > enum port port = encoder->port;
> > enum phy phy = intel_encoder_to_phy(encoder);
> >
> > - if (intel_de_wait_custom(display,
> > -
> > XELPDP_PORT_P2M_MSGBUS_STATUS(display, port, lane),
> > - XELPDP_PORT_P2M_RESPONSE_READY,
> > - XELPDP_PORT_P2M_RESPONSE_READY,
> > - 2, XELPDP_MSGBUS_TIMEOUT_MS, val)) {
> > + if (intel_de_wait_ms(display,
> > XELPDP_PORT_P2M_MSGBUS_STATUS(display, port, lane),
> > + XELPDP_PORT_P2M_RESPONSE_READY,
> > + XELPDP_PORT_P2M_RESPONSE_READY,
> > + XELPDP_MSGBUS_TIMEOUT_MS, val)) {
> > drm_dbg_kms(display->drm,
> > "PHY %c Timeout waiting for message ACK. Status:
> > 0x%x\n",
> > phy_name(phy), *val);
> > @@ -2827,9 +2826,9 @@ void
> > intel_cx0_powerdown_change_sequence(struct intel_encoder *encoder,
> > intel_cx0_get_powerdown_update(lane_mask));
> >
> > /* Update Timeout Value */
> > - if (intel_de_wait_custom(display, buf_ctl2_reg,
> > -
> > intel_cx0_get_powerdown_update(lane_mask), 0,
> > - 2,
> > XELPDP_PORT_POWERDOWN_UPDATE_TIMEOUT_MS, NULL))
> > + if (intel_de_wait_ms(display, buf_ctl2_reg,
> > + intel_cx0_get_powerdown_update(lane_mask), 0,
> > +
> > XELPDP_PORT_POWERDOWN_UPDATE_TIMEOUT_MS, NULL))
> > drm_warn(display->drm,
> > "PHY %c failed to bring out of lane reset\n",
> > phy_name(phy));
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c
> > b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> > index 2e7dbaf511b9..809799f63e32 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> > @@ -62,9 +62,9 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp)
> > u32 status;
> > int ret;
> >
> > - ret = intel_de_wait_custom(display, ch_ctl,
> > DP_AUX_CH_CTL_SEND_BUSY,
> > - 0,
> > - 2, timeout_ms, &status);
> > + ret = intel_de_wait_ms(display, ch_ctl,
> > + DP_AUX_CH_CTL_SEND_BUSY, 0,
> > + timeout_ms, &status);
> >
> > if (ret == -ETIMEDOUT)
> > drm_err(display->drm,
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index 78c34466e402..5e1a96223a9c 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -410,9 +410,8 @@ static int intel_hdcp_load_keys(struct intel_display
> > *display)
> > }
> >
> > /* Wait for the keys to load (500us) */
>
> I would prefer this comment be changed/ removed since we now wait 1 ms
> for the keys to load
I'm not changing the timeout here. Reviewign the comment vs.
code for correctness is a job for someone else (someone who
knows what the timeout should be and why the comment and
code disagree).
Though I think generally we do have other places where we use
eg. 1ms even when the specified timeout is less, especially if
the specified timeout varies between platforms. In those cases
I do prefer to have a comment that documents what the specified
timeout(s) is/are, and why we use some bigger value.
>
> other than that
>
> LGTM,
> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
>
> > - ret = intel_de_wait_custom(display, HDCP_KEY_STATUS,
> > - HDCP_KEY_LOAD_DONE,
> > HDCP_KEY_LOAD_DONE,
> > - 2, 1, &val);
> > + ret = intel_de_wait_ms(display, HDCP_KEY_STATUS,
> > HDCP_KEY_LOAD_DONE,
> > + HDCP_KEY_LOAD_DONE, 1, &val);
> > if (ret)
> > return ret;
> > else if (!(val & HDCP_KEY_LOAD_STATUS)) diff --git
> > a/drivers/gpu/drm/i915/display/intel_lt_phy.c
> > b/drivers/gpu/drm/i915/display/intel_lt_phy.c
> > index 243fca1c6a2d..ac6f61107528 100644
> > --- a/drivers/gpu/drm/i915/display/intel_lt_phy.c
> > +++ b/drivers/gpu/drm/i915/display/intel_lt_phy.c
> > @@ -1201,10 +1201,9 @@ intel_lt_phy_lane_reset(struct intel_encoder
> > *encoder,
> > XELPDP_LANE_PCLK_PLL_REQUEST(0),
> > XELPDP_LANE_PCLK_PLL_REQUEST(0));
> >
> > - if (intel_de_wait_custom(display, XELPDP_PORT_CLOCK_CTL(display,
> > port),
> > - XELPDP_LANE_PCLK_PLL_ACK(0),
> > - XELPDP_LANE_PCLK_PLL_ACK(0),
> > - 2,
> > XE3PLPD_MACCLK_TURNON_LATENCY_MS, NULL))
> > + if (intel_de_wait_ms(display, XELPDP_PORT_CLOCK_CTL(display,
> > port),
> > + XELPDP_LANE_PCLK_PLL_ACK(0),
> > XELPDP_LANE_PCLK_PLL_ACK(0),
> > + XE3PLPD_MACCLK_TURNON_LATENCY_MS, NULL))
> > drm_warn(display->drm, "PHY %c PLL MacCLK assertion ack
> > not done\n",
> > phy_name(phy));
> >
> > @@ -1215,15 +1214,15 @@ intel_lt_phy_lane_reset(struct intel_encoder
> > *encoder,
> > intel_de_rmw(display, XELPDP_PORT_BUF_CTL2(display, port),
> > lane_pipe_reset | lane_phy_pulse_status, 0);
> >
> > - if (intel_de_wait_custom(display, XELPDP_PORT_BUF_CTL2(display,
> > port),
> > - lane_phy_current_status, 0,
> > - 2, XE3PLPD_RESET_END_LATENCY_MS,
> > NULL))
> > + if (intel_de_wait_ms(display, XELPDP_PORT_BUF_CTL2(display, port),
> > + lane_phy_current_status, 0,
> > + XE3PLPD_RESET_END_LATENCY_MS, NULL))
> > drm_warn(display->drm, "PHY %c failed to bring out of lane
> > reset\n",
> > phy_name(phy));
> >
> > - if (intel_de_wait_custom(display, XELPDP_PORT_BUF_CTL2(display,
> > port),
> > - lane_phy_pulse_status,
> > lane_phy_pulse_status,
> > - 2,
> > XE3PLPD_RATE_CALIB_DONE_LATENCY_MS, NULL))
> > + if (intel_de_wait_ms(display, XELPDP_PORT_BUF_CTL2(display, port),
> > + lane_phy_pulse_status, lane_phy_pulse_status,
> > + XE3PLPD_RATE_CALIB_DONE_LATENCY_MS,
> > NULL))
> > drm_warn(display->drm, "PHY %c PLL rate not changed\n",
> > phy_name(phy));
> >
> > @@ -2002,10 +2001,9 @@ void intel_lt_phy_pll_enable(struct intel_encoder
> > *encoder,
> > XELPDP_LANE_PCLK_PLL_REQUEST(0));
> >
> > /* 12. Poll for PORT_CLOCK_CTL[PCLK PLL Ack LN0]= 1. */
> > - if (intel_de_wait_custom(display,
> > XELPDP_PORT_CLOCK_CTL(display, port),
> > - XELPDP_LANE_PCLK_PLL_ACK(0),
> > - XELPDP_LANE_PCLK_PLL_ACK(0),
> > - 2,
> > XE3PLPD_MACCLK_TURNON_LATENCY_MS, NULL))
> > + if (intel_de_wait_ms(display,
> > XELPDP_PORT_CLOCK_CTL(display, port),
> > + XELPDP_LANE_PCLK_PLL_ACK(0),
> > XELPDP_LANE_PCLK_PLL_ACK(0),
> > +
> > XE3PLPD_MACCLK_TURNON_LATENCY_MS, NULL))
> > drm_warn(display->drm, "PHY %c PLL MacCLK ack
> > assertion timeout\n",
> > phy_name(phy));
> >
> > @@ -2031,9 +2029,9 @@ void intel_lt_phy_pll_enable(struct intel_encoder
> > *encoder,
> > rate_update, MB_WRITE_COMMITTED);
> >
> > /* 16. Poll for PORT_BUF_CTL2 register PHY Pulse Status = 1
> > for Owned PHY Lanes. */
> > - if (intel_de_wait_custom(display,
> > XELPDP_PORT_BUF_CTL2(display, port),
> > - lane_phy_pulse_status,
> > lane_phy_pulse_status,
> > - 2,
> > XE3PLPD_RATE_CALIB_DONE_LATENCY_MS, NULL))
> > + if (intel_de_wait_ms(display,
> > XELPDP_PORT_BUF_CTL2(display, port),
> > + lane_phy_pulse_status,
> > lane_phy_pulse_status,
> > +
> > XE3PLPD_RATE_CALIB_DONE_LATENCY_MS, NULL))
> > drm_warn(display->drm, "PHY %c PLL rate not
> > changed\n",
> > phy_name(phy));
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c
> > b/drivers/gpu/drm/i915/display/intel_pmdemand.c
> > index 3cc89048b027..dc44a7a169c1 100644
> > --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c
> > +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c
> > @@ -462,9 +462,9 @@ static void intel_pmdemand_poll(struct intel_display
> > *display)
> > u32 status;
> > int ret;
> >
> > - ret = intel_de_wait_custom(display,
> > XELPDP_INITIATE_PMDEMAND_REQUEST(1),
> > - XELPDP_PMDEMAND_REQ_ENABLE, 0,
> > - 2, timeout_ms, &status);
> > + ret = intel_de_wait_ms(display,
> > XELPDP_INITIATE_PMDEMAND_REQUEST(1),
> > + XELPDP_PMDEMAND_REQ_ENABLE, 0,
> > + timeout_ms, &status);
> >
> > if (ret == -ETIMEDOUT)
> > drm_err(display->drm,
> > --
> > 2.49.1
>
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2025-11-11 17:41 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 17:27 [PATCH 00/16] drm/i915/de: Register polling cleanup Ville Syrjala
2025-11-10 17:27 ` [PATCH 01/16] drm/i915/de: Implement register waits one way Ville Syrjala
2025-11-11 4:52 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 02/16] drm/i915/de: Have intel_de_wait() hand out the final register value Ville Syrjala
2025-11-11 4:14 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 03/16] drm/i915/de: Include units in intel_de_wait*() function names Ville Syrjala
2025-11-11 4:21 ` Kandpal, Suraj
2025-11-11 17:45 ` Ville Syrjälä
2025-11-10 17:27 ` [PATCH 04/16] drm/i915/de: Introduce intel_de_wait_us() Ville Syrjala
2025-11-11 4:24 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 05/16] drm/i915/de: Use intel_de_wait_us() Ville Syrjala
2025-11-11 4:28 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 06/16] drm/i915/de: Use intel_de_wait_ms() for the obvious cases Ville Syrjala
2025-11-11 4:32 ` Kandpal, Suraj
2025-11-11 17:41 ` Ville Syrjälä [this message]
2025-11-10 17:27 ` [PATCH 07/16] drm/i915/de: Nuke intel_de_wait_custom() Ville Syrjala
2025-11-11 4:33 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 08/16] drm/i915/de: Introduce intel_de_wait_for_{set, clear}_us() Ville Syrjala
2025-11-11 4:35 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 09/16] drm/i915/de: Use intel_de_wait_for_{set,clear}_us() Ville Syrjala
2025-11-11 4:38 ` [PATCH 09/16] drm/i915/de: Use intel_de_wait_for_{set, clear}_us() Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 10/16] drm/i915/de: Use intel_de_wait_for_{set,clear}_ms() Ville Syrjala
2025-11-11 4:39 ` [PATCH 10/16] drm/i915/de: Use intel_de_wait_for_{set, clear}_ms() Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 11/16] drm/1915/dpio: Stop using intel_de_wait_fw_ms() Ville Syrjala
2025-11-11 4:41 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 12/16] drm/u195/de: Replace __intel_de_rmw_nowl() with intel_de_rmw_fw() Ville Syrjala
2025-11-11 4:44 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 13/16] drm/i915/de: Nuke wakelocks from intel_de_wait_fw_ms() Ville Syrjala
2025-11-11 4:45 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 14/16] drm/i915/de: Replace __intel_de_wait_for_register_nowl() with intel_de_wait_fw_us_atomic() Ville Syrjala
2025-11-11 4:46 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 15/16] drm/i915/power: Use the intel_de_wait_ms() out value Ville Syrjala
2025-11-11 4:48 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 16/16] drm/i915/dpio: " Ville Syrjala
2025-11-11 4:50 ` Kandpal, Suraj
2025-11-10 18:01 ` ✗ CI.checkpatch: warning for drm/i915/de: Register polling cleanup Patchwork
2025-11-10 18:02 ` ✓ CI.KUnit: success " Patchwork
2025-11-10 18:17 ` ✗ CI.checksparse: warning " Patchwork
2025-11-10 18:46 ` ✓ Xe.CI.BAT: success " Patchwork
2025-11-10 21:24 ` ✓ i915.CI.BAT: " Patchwork
2025-11-10 23:38 ` ✓ Xe.CI.Full: " Patchwork
2025-11-11 3:41 ` ✗ i915.CI.Full: failure " Patchwork
2025-11-11 8:01 ` [PATCH 00/16] " Jani Nikula
2025-11-11 16:11 ` Ville Syrjälä
2025-11-11 19:09 ` Ville Syrjälä
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=aRN1Q5ygV91CiVf4@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--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 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.