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: 40+ 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 21:24 ` ✓ i915.CI.BAT: success for drm/i915/de: Register polling cleanup 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox