Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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