> Subject: [PATCH 02/16] drm/i915/de: Have intel_de_wait() hand out the final
> register value
> 
> From: Ville Syrjälä <[email protected]>
> 
> We currently have a bunch of places that want the final register value after
> register polling. Currently those places are mostly using
> intel_de_wait_custom(). That is not a function that we want to keep around
> as it pretty much prevents conversion to poll_timeout_us().
> 
> Have intel_de_wait() also return the final register value so that some of the
> current users can be converted over to the simpler interface.
> 
> Done with cocci:
> @@
> @@
> int intel_de_wait(...
> + ,u32 *out_value
>  )
> {
> ...
> __intel_wait_for_register(...,
> - NULL
> + out_value
>  )
> ...
> }
> 
> @@
> @@
>  intel_de_wait(...
> + ,NULL
>  )
> 
> Signed-off-by: Ville Syrjälä <[email protected]>

LGTM,
Reviewed-by: Suraj Kandpal <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_de.h                 | 8 ++++----
>  drivers/gpu/drm/i915/display/intel_display_power_well.c | 2 +-
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c            | 4 ++--
>  drivers/gpu/drm/i915/display/intel_dpio_phy.c           | 2 +-
>  4 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_de.h
> b/drivers/gpu/drm/i915/display/intel_de.h
> index ea9973dbbffc..a4ad20030c09 100644
> --- a/drivers/gpu/drm/i915/display/intel_de.h
> +++ b/drivers/gpu/drm/i915/display/intel_de.h
> @@ -116,14 +116,14 @@ __intel_de_wait_for_register_atomic_nowl(struct
> intel_display *display,
> 
>  static inline int
>  intel_de_wait(struct intel_display *display, i915_reg_t reg,
> -           u32 mask, u32 value, unsigned int timeout_ms)
> +           u32 mask, u32 value, unsigned int timeout_ms, u32 *out_value)
>  {
>       int ret;
> 
>       intel_dmc_wl_get(display, reg);
> 
>       ret = __intel_wait_for_register(__to_uncore(display), reg, mask,
> -                                     value, 2, timeout_ms, NULL);
> +                                     value, 2, timeout_ms, out_value);
> 
>       intel_dmc_wl_put(display, reg);
> 
> @@ -169,14 +169,14 @@ static inline int
>  intel_de_wait_for_set(struct intel_display *display, i915_reg_t reg,
>                     u32 mask, unsigned int timeout_ms)  {
> -     return intel_de_wait(display, reg, mask, mask, timeout_ms);
> +     return intel_de_wait(display, reg, mask, mask, timeout_ms, NULL);
>  }
> 
>  static inline int
>  intel_de_wait_for_clear(struct intel_display *display, i915_reg_t reg,
>                       u32 mask, unsigned int timeout_ms)
>  {
> -     return intel_de_wait(display, reg, mask, 0, timeout_ms);
> +     return intel_de_wait(display, reg, mask, 0, timeout_ms, NULL);
>  }
> 
>  /*
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power_well.c
> b/drivers/gpu/drm/i915/display/intel_display_power_well.c
> index eab7019f2252..afa5d8964f0d 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power_well.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power_well.c
> @@ -1446,7 +1446,7 @@ static void assert_chv_phy_status(struct
> intel_display *display)
>        * so the power state can take a while to actually change.
>        */
>       if (intel_de_wait(display, DISPLAY_PHY_STATUS,
> -                       phy_status_mask, phy_status, 10))
> +                       phy_status_mask, phy_status, 10, NULL))
>               drm_err(display->drm,
>                       "Unexpected PHY_STATUS 0x%08x, expected 0x%08x
> (PHY_CONTROL=0x%08x)\n",
>                       intel_de_read(display, DISPLAY_PHY_STATUS) &
> phy_status_mask, diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> index bd757db85927..27bb2199659f 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> @@ -784,7 +784,7 @@ intel_dp_mst_hdcp_stream_encryption(struct
> intel_connector *connector,
>       /* Wait for encryption confirmation */
>       if (intel_de_wait(display, HDCP_STATUS(display, cpu_transcoder, port),
>                         stream_enc_status, enable ? stream_enc_status : 0,
> -                       HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
> +                       HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS,
> NULL)) {
>               drm_err(display->drm, "Timed out waiting for transcoder: %s
> stream encryption %s\n",
>                       transcoder_name(cpu_transcoder),
> str_enabled_disabled(enable));
>               return -ETIMEDOUT;
> @@ -824,7 +824,7 @@ intel_dp_mst_hdcp2_stream_encryption(struct
> intel_connector *connector,
>       if (intel_de_wait(display, HDCP2_STREAM_STATUS(display,
> cpu_transcoder, pipe),
>                         STREAM_ENCRYPTION_STATUS,
>                         enable ? STREAM_ENCRYPTION_STATUS : 0,
> -                       HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
> +                       HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS,
> NULL)) {
>               drm_err(display->drm, "Timed out waiting for transcoder: %s
> stream encryption %s\n",
>                       transcoder_name(cpu_transcoder),
> str_enabled_disabled(enable));
>               return -ETIMEDOUT;
> diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> index 5df6347a420d..378f0836b5a5 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> @@ -1193,7 +1193,7 @@ void vlv_wait_port_ready(struct intel_encoder
> *encoder,
>               break;
>       }
> 
> -     if (intel_de_wait(display, dpll_reg, port_mask, expected_mask, 1000))
> +     if (intel_de_wait(display, dpll_reg, port_mask, expected_mask, 1000,
> +NULL))
>               drm_WARN(display->drm, 1,
>                        "timed out waiting for [ENCODER:%d:%s] port ready:
> got 0x%x, expected 0x%x\n",
>                        encoder->base.base.id, encoder->base.name,
> --
> 2.49.1

Reply via email to