On Tue, 2025-11-25 at 15:24 +0200, Jani Nikula wrote:
> Under the hood, intel_wakeref_t is just struct ref_tracker *. Use the
> actual underlying type both for clarity (we *are* using intel_wakeref_t
> as a pointer though it doesn't look like one) and to help i915, xe and
> display coexistence without custom types.
> 
> v2: Keep intel_wakeref.h includes as they are
> 
> Signed-off-by: Jani Nikula <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/g4x_dp.c         |  2 +-
>  drivers/gpu/drm/i915/display/g4x_hdmi.c       |  2 +-
>  drivers/gpu/drm/i915/display/i9xx_plane.c     |  2 +-
>  drivers/gpu/drm/i915/display/icl_dsi.c        |  4 +--
>  drivers/gpu/drm/i915/display/intel_audio.c    |  6 ++--
>  drivers/gpu/drm/i915/display/intel_cdclk.c    |  4 +--
>  drivers/gpu/drm/i915/display/intel_crt.c      |  6 ++--
>  drivers/gpu/drm/i915/display/intel_cursor.c   |  4 +--
>  drivers/gpu/drm/i915/display/intel_cx0_phy.c  | 18 +++++-----
>  drivers/gpu/drm/i915/display/intel_ddi.c      | 16 ++++-----
>  drivers/gpu/drm/i915/display/intel_display.c  |  8 ++---
>  .../gpu/drm/i915/display/intel_display_core.h |  2 +-
>  .../drm/i915/display/intel_display_debugfs.c  |  2 +-
>  .../drm/i915/display/intel_display_power.c    | 26 +++++++--------
>  .../drm/i915/display/intel_display_power.h    | 33 ++++++++++---------
>  .../drm/i915/display/intel_display_types.h    |  6 ++--
>  drivers/gpu/drm/i915/display/intel_dmc.c      |  2 +-
>  drivers/gpu/drm/i915/display/intel_dp_aux.c   |  2 +-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 18 +++++-----
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.h |  4 +--
>  drivers/gpu/drm/i915/display/intel_dsi.h      |  7 ++--
>  drivers/gpu/drm/i915/display/intel_gmbus.c    |  4 +--
>  drivers/gpu/drm/i915/display/intel_hdmi.c     |  4 +--
>  drivers/gpu/drm/i915/display/intel_hotplug.c  |  2 +-
>  drivers/gpu/drm/i915/display/intel_lt_phy.c   | 14 ++++----
>  drivers/gpu/drm/i915/display/intel_lvds.c     |  2 +-
>  .../drm/i915/display/intel_modeset_setup.c    |  2 +-
>  drivers/gpu/drm/i915/display/intel_pipe_crc.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c   |  6 ++--
>  drivers/gpu/drm/i915/display/intel_tc.c       | 22 ++++++-------
>  drivers/gpu/drm/i915/display/intel_vdsc.c     |  2 +-
>  .../drm/i915/display/skl_universal_plane.c    |  2 +-
>  drivers/gpu/drm/i915/display/skl_watermark.c  |  2 +-
>  drivers/gpu/drm/i915/display/vlv_dsi.c        |  2 +-
>  .../xe/compat-i915-headers/intel_wakeref.h    |  4 ---
>  drivers/gpu/drm/xe/display/xe_display_rpm.c   |  1 +
>  36 files changed, 122 insertions(+), 123 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c 
> b/drivers/gpu/drm/i915/display/g4x_dp.c
> index 27f4c55d7484..4cb753177fd8 100644
> --- a/drivers/gpu/drm/i915/display/g4x_dp.c
> +++ b/drivers/gpu/drm/i915/display/g4x_dp.c
> @@ -302,7 +302,7 @@ static bool intel_dp_get_hw_state(struct intel_encoder 
> *encoder,
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c 
> b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> index f6e2d1ed5639..8b22447e8e23 100644
> --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> @@ -68,7 +68,7 @@ static bool intel_hdmi_get_hw_state(struct intel_encoder 
> *encoder,
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c 
> b/drivers/gpu/drm/i915/display/i9xx_plane.c
> index 51ccc6bd5f21..6b570335f393 100644
> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> @@ -724,7 +724,7 @@ static bool i9xx_plane_get_hw_state(struct intel_plane 
> *plane,
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
>       enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>       u32 val;
>  
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c 
> b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 9230792960f2..dac781f54661 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -1411,7 +1411,7 @@ static void gen11_dsi_disable_io_power(struct 
> intel_encoder *encoder)
>       enum port port;
>  
>       for_each_dsi_port(port, intel_dsi->ports) {
> -             intel_wakeref_t wakeref;
> +             struct ref_tracker *wakeref;
>  
>               wakeref = fetch_and_zero(&intel_dsi->io_wakeref[port]);
>               intel_display_power_put(display,
> @@ -1722,7 +1722,7 @@ static bool gen11_dsi_get_hw_state(struct intel_encoder 
> *encoder,
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>       enum transcoder dsi_trans;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       enum port port;
>       bool ret = false;
>       u32 tmp;
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
> b/drivers/gpu/drm/i915/display/intel_audio.c
> index 5bdaef38f13d..5f3c175afdd2 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -1042,10 +1042,10 @@ int intel_audio_min_cdclk(const struct 
> intel_crtc_state *crtc_state)
>  static unsigned long intel_audio_component_get_power(struct device *kdev)
>  {
>       struct intel_display *display = to_intel_display(kdev);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       /* Catch potential impedance mismatches before they occur! */
> -     BUILD_BUG_ON(sizeof(intel_wakeref_t) > sizeof(unsigned long));
> +     BUILD_BUG_ON(sizeof(wakeref) > sizeof(unsigned long));
>  
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_AUDIO_PLAYBACK);
>  
> @@ -1074,7 +1074,7 @@ static void intel_audio_component_put_power(struct 
> device *kdev,
>                                           unsigned long cookie)
>  {
>       struct intel_display *display = to_intel_display(kdev);
> -     intel_wakeref_t wakeref = (intel_wakeref_t)cookie;
> +     struct ref_tracker *wakeref = (struct ref_tracker *)cookie;
>  
>       /* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */
>       if (--display->audio.power_refcount == 0)
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c 
> b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index 5c90e53b4e46..ada08fd1447b 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -667,7 +667,7 @@ static void vlv_set_cdclk(struct intel_display *display,
>  {
>       int cdclk = cdclk_config->cdclk;
>       u32 val, cmd = cdclk_config->voltage_level;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int ret;
>  
>       switch (cdclk) {
> @@ -757,7 +757,7 @@ static void chv_set_cdclk(struct intel_display *display,
>  {
>       int cdclk = cdclk_config->cdclk;
>       u32 val, cmd = cdclk_config->voltage_level;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int ret;
>  
>       switch (cdclk) {
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c 
> b/drivers/gpu/drm/i915/display/intel_crt.c
> index 82e89cdbe5a5..5f9a03877ea9 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -109,7 +109,7 @@ static bool intel_crt_get_hw_state(struct intel_encoder 
> *encoder,
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_crt *crt = intel_encoder_to_crt(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> @@ -847,7 +847,7 @@ intel_crt_detect(struct drm_connector *connector,
>       struct intel_crt *crt = 
> intel_attached_crt(to_intel_connector(connector));
>       struct intel_encoder *encoder = &crt->base;
>       struct drm_atomic_state *state;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int status;
>  
>       drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] force=%d\n",
> @@ -936,7 +936,7 @@ static int intel_crt_get_modes(struct drm_connector 
> *connector)
>       struct intel_display *display = to_intel_display(connector->dev);
>       struct intel_crt *crt = 
> intel_attached_crt(to_intel_connector(connector));
>       struct intel_encoder *encoder = &crt->base;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       struct i2c_adapter *ddc;
>       int ret;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c 
> b/drivers/gpu/drm/i915/display/intel_cursor.c
> index a10b2425b94d..341d1cb40295 100644
> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
> @@ -324,7 +324,7 @@ static bool i845_cursor_get_hw_state(struct intel_plane 
> *plane,
>  {
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       power_domain = POWER_DOMAIN_PIPE(PIPE_A);
> @@ -727,7 +727,7 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane 
> *plane,
>  {
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>       u32 val;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c 
> b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> index 27be2a490297..7bd17723e7ab 100644
> --- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
> @@ -105,11 +105,11 @@ static void intel_cx0_program_msgbus_timer(struct 
> intel_encoder *encoder)
>   * We also do the msgbus timer programming here to ensure that the timer
>   * is already programmed before any access to the msgbus.
>   */
> -static intel_wakeref_t intel_cx0_phy_transaction_begin(struct intel_encoder 
> *encoder)
> +static struct ref_tracker *intel_cx0_phy_transaction_begin(struct 
> intel_encoder *encoder)
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       intel_psr_pause(intel_dp);
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_DC_OFF);
> @@ -118,7 +118,7 @@ static intel_wakeref_t 
> intel_cx0_phy_transaction_begin(struct intel_encoder *enc
>       return wakeref;
>  }
>  
> -static void intel_cx0_phy_transaction_end(struct intel_encoder *encoder, 
> intel_wakeref_t wakeref)
> +static void intel_cx0_phy_transaction_end(struct intel_encoder *encoder, 
> struct ref_tracker *wakeref)
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> @@ -476,7 +476,7 @@ void intel_cx0_phy_set_signal_levels(struct intel_encoder 
> *encoder,
>       struct intel_display *display = to_intel_display(encoder);
>       const struct intel_ddi_buf_trans *trans;
>       u8 owned_lane_mask;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int n_entries, ln;
>       struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>  
> @@ -2252,7 +2252,7 @@ static void intel_c10pll_readout_hw_state(struct 
> intel_encoder *encoder,
>       struct intel_display *display = to_intel_display(encoder);
>       enum phy phy = intel_encoder_to_phy(encoder);
>       u8 lane = INTEL_CX0_LANE0;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int i;
>  
>       cx0pll_state->use_c10 = true;
> @@ -2756,7 +2756,7 @@ static void intel_c20pll_readout_hw_state(struct 
> intel_encoder *encoder,
>       struct intel_c20pll_state *pll_state = &cx0pll_state->c20;
>       struct intel_display *display = to_intel_display(encoder);
>       bool cntx;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int i;
>  
>       cx0pll_state->use_c10 = false;
> @@ -3225,7 +3225,7 @@ static void intel_cx0pll_enable(struct intel_encoder 
> *encoder,
>       bool lane_reversal = dig_port->lane_reversal;
>       u8 maxpclk_lane = lane_reversal ? INTEL_CX0_LANE1 :
>                                         INTEL_CX0_LANE0;
> -     intel_wakeref_t wakeref = intel_cx0_phy_transaction_begin(encoder);
> +     struct ref_tracker *wakeref = intel_cx0_phy_transaction_begin(encoder);
>  
>       /*
>        * Lane reversal is never used in DP-alt mode, in that case the
> @@ -3463,7 +3463,7 @@ void intel_lnl_mac_transmit_lfps(struct intel_encoder 
> *encoder,
>                                const struct intel_crtc_state *crtc_state)
>  {
>       struct intel_display *display = to_intel_display(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int i;
>       u8 owned_lane_mask;
>  
> @@ -3510,7 +3510,7 @@ static void intel_cx0pll_disable(struct intel_encoder 
> *encoder)
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       enum phy phy = intel_encoder_to_phy(encoder);
> -     intel_wakeref_t wakeref = intel_cx0_phy_transaction_begin(encoder);
> +     struct ref_tracker *wakeref = intel_cx0_phy_transaction_begin(encoder);
>  
>       /* 1. Change owned PHY lane power to Disable state. */
>       intel_cx0_powerdown_change_sequence(encoder, INTEL_CX0_BOTH_LANES,
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index ed9798b0ec00..8158f9829ddf 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -728,7 +728,7 @@ int intel_ddi_toggle_hdcp_bits(struct intel_encoder 
> *intel_encoder,
>                              bool enable, u32 hdcp_mask)
>  {
>       struct intel_display *display = to_intel_display(intel_encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int ret = 0;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> @@ -749,7 +749,7 @@ bool intel_ddi_connector_get_hw_state(struct 
> intel_connector *intel_connector)
>       int type = intel_connector->base.connector_type;
>       enum port port = encoder->port;
>       enum transcoder cpu_transcoder;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       enum pipe pipe = 0;
>       u32 ddi_mode;
>       bool ret;
> @@ -805,7 +805,7 @@ static void intel_ddi_get_encoder_pipes(struct 
> intel_encoder *encoder,
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       enum port port = encoder->port;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       enum pipe p;
>       u32 tmp;
>       u8 mst_pipe_mask = 0, dp128b132b_pipe_mask = 0;
> @@ -848,7 +848,7 @@ static void intel_ddi_get_encoder_pipes(struct 
> intel_encoder *encoder,
>       for_each_pipe(display, p) {
>               enum transcoder cpu_transcoder = (enum transcoder)p;
>               u32 port_mask, ddi_select, ddi_mode;
> -             intel_wakeref_t trans_wakeref;
> +             struct ref_tracker *trans_wakeref;
>  
>               trans_wakeref = intel_display_power_get_if_enabled(display,
>                                                                  
> POWER_DOMAIN_TRANSCODER(cpu_transcoder));
> @@ -1002,7 +1002,7 @@ main_link_aux_power_domain_put(struct 
> intel_digital_port *dig_port,
>       struct intel_display *display = to_intel_display(dig_port);
>       enum intel_display_power_domain domain =
>               intel_ddi_main_link_aux_domain(dig_port, crtc_state);
> -     intel_wakeref_t wf;
> +     struct ref_tracker *wf;
>  
>       wf = fetch_and_zero(&dig_port->aux_wakeref);
>       if (!wf)
> @@ -3130,7 +3130,7 @@ static void intel_ddi_post_disable_dp(struct 
> intel_atomic_state *state,
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>       struct intel_dp *intel_dp = &dig_port->dp;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool is_mst = intel_crtc_has_type(old_crtc_state,
>                                         INTEL_OUTPUT_DP_MST);
>  
> @@ -3198,7 +3198,7 @@ static void intel_ddi_post_disable_hdmi(struct 
> intel_atomic_state *state,
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>       struct intel_hdmi *intel_hdmi = &dig_port->hdmi;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       dig_port->set_infoframes(encoder, false,
>                                old_crtc_state, old_conn_state);
> @@ -3965,7 +3965,7 @@ static void bdw_get_trans_port_sync_config(struct 
> intel_crtc_state *crtc_state)
>  
>       for_each_cpu_transcoder_masked(display, cpu_transcoder, transcoders) {
>               enum intel_display_power_domain power_domain;
> -             intel_wakeref_t trans_wakeref;
> +             struct ref_tracker *trans_wakeref;
>  
>               power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
>               trans_wakeref = intel_display_power_get_if_enabled(display,
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 34e69b884713..62e97d725887 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -372,7 +372,7 @@ void assert_transcoder(struct intel_display *display,
>  {
>       bool cur_state;
>       enum intel_display_power_domain power_domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       /* we keep both pipes enabled on 830 */
>       if (display->platform.i830)
> @@ -3035,7 +3035,7 @@ static bool i9xx_get_pipe_config(struct intel_crtc 
> *crtc,
>       struct intel_display *display = to_intel_display(crtc);
>       enum intel_display_power_domain power_domain;
>       enum transcoder cpu_transcoder = (enum transcoder)crtc->pipe;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret = false;
>       u32 tmp;
>  
> @@ -3379,7 +3379,7 @@ static bool ilk_get_pipe_config(struct intel_crtc *crtc,
>       struct intel_display *display = to_intel_display(crtc);
>       enum intel_display_power_domain power_domain;
>       enum transcoder cpu_transcoder = (enum transcoder)crtc->pipe;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret = false;
>       u32 tmp;
>  
> @@ -7376,7 +7376,7 @@ static void intel_atomic_commit_tail(struct 
> intel_atomic_state *state)
>       struct intel_crtc_state *new_crtc_state, *old_crtc_state;
>       struct intel_crtc *crtc;
>       struct intel_power_domain_mask put_domains[I915_MAX_PIPES] = {};
> -     intel_wakeref_t wakeref = NULL;
> +     struct ref_tracker *wakeref = NULL;
>       int i;
>  
>       for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h 
> b/drivers/gpu/drm/i915/display/intel_display_core.h
> index 9b36654b593d..5b2120afa806 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> @@ -386,7 +386,7 @@ struct intel_display {
>  
>       struct {
>               struct intel_dmc *dmc;
> -             intel_wakeref_t wakeref;
> +             struct ref_tracker *wakeref;
>       } dmc;
>  
>       struct {
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c 
> b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 9bbfdae8d024..aba13e8a9051 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -86,7 +86,7 @@ static int i915_frontbuffer_tracking(struct seq_file *m, 
> void *unused)
>  static int i915_sr_status(struct seq_file *m, void *unused)
>  {
>       struct intel_display *display = node_to_intel_display(m->private);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool sr_enabled = false;
>  
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_INIT);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c 
> b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 08db9bbbfcb1..7cbef1a68266 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -544,8 +544,8 @@ __intel_display_power_get_domain(struct intel_display 
> *display,
>   * Any power domain reference obtained by this function must have a symmetric
>   * call to intel_display_power_put() to release the reference again.
>   */
> -intel_wakeref_t intel_display_power_get(struct intel_display *display,
> -                                     enum intel_display_power_domain domain)
> +struct ref_tracker *intel_display_power_get(struct intel_display *display,
> +                                         enum intel_display_power_domain 
> domain)
>  {
>       struct i915_power_domains *power_domains = &display->power.domains;
>       struct ref_tracker *wakeref;
> @@ -571,7 +571,7 @@ intel_wakeref_t intel_display_power_get(struct 
> intel_display *display,
>   * Any power domain reference obtained by this function must have a symmetric
>   * call to intel_display_power_put() to release the reference again.
>   */
> -intel_wakeref_t
> +struct ref_tracker *
>  intel_display_power_get_if_enabled(struct intel_display *display,
>                                  enum intel_display_power_domain domain)
>  {
> @@ -638,7 +638,7 @@ static void __intel_display_power_put(struct 
> intel_display *display,
>  
>  static void
>  queue_async_put_domains_work(struct i915_power_domains *power_domains,
> -                          intel_wakeref_t wakeref,
> +                          struct ref_tracker *wakeref,
>                            int delay_ms)
>  {
>       struct intel_display *display = container_of(power_domains,
> @@ -740,7 +740,7 @@ intel_display_power_put_async_work(struct work_struct 
> *work)
>   */
>  void __intel_display_power_put_async(struct intel_display *display,
>                                    enum intel_display_power_domain domain,
> -                                  intel_wakeref_t wakeref,
> +                                  struct ref_tracker *wakeref,
>                                    int delay_ms)
>  {
>       struct i915_power_domains *power_domains = &display->power.domains;
> @@ -799,7 +799,7 @@ void intel_display_power_flush_work(struct intel_display 
> *display)
>  {
>       struct i915_power_domains *power_domains = &display->power.domains;
>       struct intel_power_domain_mask async_put_mask;
> -     intel_wakeref_t work_wakeref;
> +     struct ref_tracker *work_wakeref;
>  
>       mutex_lock(&power_domains->lock);
>  
> @@ -853,7 +853,7 @@ intel_display_power_flush_work_sync(struct intel_display 
> *display)
>   */
>  void intel_display_power_put(struct intel_display *display,
>                            enum intel_display_power_domain domain,
> -                          intel_wakeref_t wakeref)
> +                          struct ref_tracker *wakeref)
>  {
>       __intel_display_power_put(display, domain);
>       intel_display_rpm_put(display, wakeref);
> @@ -885,7 +885,7 @@ intel_display_power_get_in_set(struct intel_display 
> *display,
>                              struct intel_display_power_domain_set 
> *power_domain_set,
>                              enum intel_display_power_domain domain)
>  {
> -     intel_wakeref_t __maybe_unused wf;
> +     struct ref_tracker *__maybe_unused wf;
>  
>       drm_WARN_ON(display->drm, test_bit(domain, 
> power_domain_set->mask.bits));
>  
> @@ -901,7 +901,7 @@ intel_display_power_get_in_set_if_enabled(struct 
> intel_display *display,
>                                         struct intel_display_power_domain_set 
> *power_domain_set,
>                                         enum intel_display_power_domain 
> domain)
>  {
> -     intel_wakeref_t wf;
> +     struct ref_tracker *wf;
>  
>       drm_WARN_ON(display->drm, test_bit(domain, 
> power_domain_set->mask.bits));
>  
> @@ -928,7 +928,7 @@ intel_display_power_put_mask_in_set(struct intel_display 
> *display,
>                   !bitmap_subset(mask->bits, power_domain_set->mask.bits, 
> POWER_DOMAIN_NUM));
>  
>       for_each_power_domain(domain, mask) {
> -             intel_wakeref_t __maybe_unused wf = INTEL_WAKEREF_DEF;
> +             struct ref_tracker *__maybe_unused wf = INTEL_WAKEREF_DEF;
>  
>  #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
>               wf = fetch_and_zero(&power_domain_set->wakerefs[domain]);
> @@ -2004,7 +2004,7 @@ void intel_power_domains_init_hw(struct intel_display 
> *display, bool resume)
>   */
>  void intel_power_domains_driver_remove(struct intel_display *display)
>  {
> -     intel_wakeref_t wakeref __maybe_unused =
> +     struct ref_tracker *wakeref __maybe_unused =
>               fetch_and_zero(&display->power.domains.init_wakeref);
>  
>       /* Remove the refcount we took to keep power well support disabled. */
> @@ -2065,7 +2065,7 @@ void intel_power_domains_sanitize_state(struct 
> intel_display *display)
>   */
>  void intel_power_domains_enable(struct intel_display *display)
>  {
> -     intel_wakeref_t wakeref __maybe_unused =
> +     struct ref_tracker *wakeref __maybe_unused =
>               fetch_and_zero(&display->power.domains.init_wakeref);
>  
>       intel_display_power_put(display, POWER_DOMAIN_INIT, wakeref);
> @@ -2104,7 +2104,7 @@ void intel_power_domains_disable(struct intel_display 
> *display)
>  void intel_power_domains_suspend(struct intel_display *display, bool s2idle)
>  {
>       struct i915_power_domains *power_domains = &display->power.domains;
> -     intel_wakeref_t wakeref __maybe_unused =
> +     struct ref_tracker *wakeref __maybe_unused =
>               fetch_and_zero(&power_domains->init_wakeref);
>  
>       intel_display_power_put(display, POWER_DOMAIN_INIT, wakeref);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h 
> b/drivers/gpu/drm/i915/display/intel_display_power.h
> index 79ce8d94bf7d..6f8d921b4482 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
> @@ -16,6 +16,7 @@ enum port;
>  struct i915_power_well;
>  struct intel_display;
>  struct intel_encoder;
> +struct ref_tracker;
>  struct seq_file;
>  
>  /*
> @@ -142,14 +143,14 @@ struct i915_power_domains {
>       u32 target_dc_state;
>       u32 allowed_dc_mask;
>  
> -     intel_wakeref_t init_wakeref;
> -     intel_wakeref_t disable_wakeref;
> +     struct ref_tracker *init_wakeref;
> +     struct ref_tracker *disable_wakeref;
>  
>       struct mutex lock;
>       int domain_use_count[POWER_DOMAIN_NUM];
>  
>       struct delayed_work async_put_work;
> -     intel_wakeref_t async_put_wakeref;
> +     struct ref_tracker *async_put_wakeref;
>       struct intel_power_domain_mask async_put_domains[2];
>       int async_put_next_delay;
>  
> @@ -159,7 +160,7 @@ struct i915_power_domains {
>  struct intel_display_power_domain_set {
>       struct intel_power_domain_mask mask;
>  #ifdef CONFIG_DRM_I915_DEBUG_RUNTIME_PM
> -     intel_wakeref_t wakerefs[POWER_DOMAIN_NUM];
> +     struct ref_tracker *wakerefs[POWER_DOMAIN_NUM];
>  #endif
>  };
>  
> @@ -187,24 +188,24 @@ u32 intel_display_power_get_current_dc_state(struct 
> intel_display *display);
>  
>  bool intel_display_power_is_enabled(struct intel_display *display,
>                                   enum intel_display_power_domain domain);
> -intel_wakeref_t intel_display_power_get(struct intel_display *display,
> -                                     enum intel_display_power_domain domain);
> -intel_wakeref_t
> +struct ref_tracker *intel_display_power_get(struct intel_display *display,
> +                                         enum intel_display_power_domain 
> domain);
> +struct ref_tracker *
>  intel_display_power_get_if_enabled(struct intel_display *display,
>                                  enum intel_display_power_domain domain);
>  void __intel_display_power_put_async(struct intel_display *display,
>                                    enum intel_display_power_domain domain,
> -                                  intel_wakeref_t wakeref,
> +                                  struct ref_tracker *wakeref,
>                                    int delay_ms);
>  void intel_display_power_flush_work(struct intel_display *display);
>  #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
>  void intel_display_power_put(struct intel_display *display,
>                            enum intel_display_power_domain domain,
> -                          intel_wakeref_t wakeref);
> +                          struct ref_tracker *wakeref);
>  static inline void
>  intel_display_power_put_async(struct intel_display *display,
>                             enum intel_display_power_domain domain,
> -                           intel_wakeref_t wakeref)
> +                           struct ref_tracker *wakeref)
>  {
>       __intel_display_power_put_async(display, domain, wakeref, -1);
>  }
> @@ -212,7 +213,7 @@ intel_display_power_put_async(struct intel_display 
> *display,
>  static inline void
>  intel_display_power_put_async_delay(struct intel_display *display,
>                                   enum intel_display_power_domain domain,
> -                                 intel_wakeref_t wakeref,
> +                                 struct ref_tracker *wakeref,
>                                   int delay_ms)
>  {
>       __intel_display_power_put_async(display, domain, wakeref, delay_ms);
> @@ -224,7 +225,7 @@ void intel_display_power_put_unchecked(struct 
> intel_display *display,
>  static inline void
>  intel_display_power_put(struct intel_display *display,
>                       enum intel_display_power_domain domain,
> -                     intel_wakeref_t wakeref)
> +                     struct ref_tracker *wakeref)
>  {
>       intel_display_power_put_unchecked(display, domain);
>  }
> @@ -232,7 +233,7 @@ intel_display_power_put(struct intel_display *display,
>  static inline void
>  intel_display_power_put_async(struct intel_display *display,
>                             enum intel_display_power_domain domain,
> -                           intel_wakeref_t wakeref)
> +                           struct ref_tracker *wakeref)
>  {
>       __intel_display_power_put_async(display, domain, INTEL_WAKEREF_DEF, -1);
>  }
> @@ -240,7 +241,7 @@ intel_display_power_put_async(struct intel_display 
> *display,
>  static inline void
>  intel_display_power_put_async_delay(struct intel_display *display,
>                                   enum intel_display_power_domain domain,
> -                                 intel_wakeref_t wakeref,
> +                                 struct ref_tracker *wakeref,
>                                   int delay_ms)
>  {
>       __intel_display_power_put_async(display, domain, INTEL_WAKEREF_DEF, 
> delay_ms);
> @@ -298,14 +299,14 @@ void gen9_dbuf_slices_update(struct intel_display 
> *display,
>                            u8 req_slices);
>  
>  #define __with_intel_display_power(display, domain, wf) \
> -     for (intel_wakeref_t (wf) = intel_display_power_get((display), 
> (domain)); (wf); \
> +     for (struct ref_tracker *(wf) = intel_display_power_get((display), 
> (domain)); (wf); \
>            intel_display_power_put_async((display), (domain), (wf)), (wf) = 
> NULL)
>  
>  #define with_intel_display_power(display, domain) \
>       __with_intel_display_power(display, domain, __UNIQUE_ID(wakeref))
>  
>  #define __with_intel_display_power_if_enabled(display, domain, wf) \
> -     for (intel_wakeref_t (wf) = 
> intel_display_power_get_if_enabled((display), (domain)); (wf); \
> +     for (struct ref_tracker *(wf) = 
> intel_display_power_get_if_enabled((display), (domain)); (wf); \
>            intel_display_power_put_async((display), (domain), (wf)), (wf) = 
> NULL)
>  
>  #define with_intel_display_power_if_enabled(display, domain) \
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 38702a9e0f50..ed0f7448e6cd 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1658,7 +1658,7 @@ struct intel_pps {
>       unsigned long last_power_on;
>       unsigned long last_backlight_off;
>       ktime_t panel_power_off_time;
> -     intel_wakeref_t vdd_wakeref;
> +     struct ref_tracker *vdd_wakeref;
>  
>       union {
>               /*
> @@ -1940,8 +1940,8 @@ struct intel_digital_port {
>       /* Used for DP and ICL+ TypeC/DP and TypeC/HDMI ports. */
>       enum aux_ch aux_ch;
>       enum intel_display_power_domain ddi_io_power_domain;
> -     intel_wakeref_t ddi_io_wakeref;
> -     intel_wakeref_t aux_wakeref;
> +     struct ref_tracker *ddi_io_wakeref;
> +     struct ref_tracker *aux_wakeref;
>  
>       struct intel_tc_port *tc;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c 
> b/drivers/gpu/drm/i915/display/intel_dmc.c
> index 6ebbd97e6351..2fb6fec6dc99 100644
> --- a/drivers/gpu/drm/i915/display/intel_dmc.c
> +++ b/drivers/gpu/drm/i915/display/intel_dmc.c
> @@ -1322,7 +1322,7 @@ static void intel_dmc_runtime_pm_get(struct 
> intel_display *display)
>  
>  static void intel_dmc_runtime_pm_put(struct intel_display *display)
>  {
> -     intel_wakeref_t wakeref __maybe_unused =
> +     struct ref_tracker *wakeref __maybe_unused =
>               fetch_and_zero(&display->dmc.wakeref);
>  
>       intel_display_power_put(display, POWER_DOMAIN_INIT, wakeref);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c 
> b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> index 38e03f3efac5..51b3a168ec33 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> @@ -245,7 +245,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
>       i915_reg_t ch_ctl, ch_data[5];
>       u32 aux_clock_divider;
>       enum intel_display_power_domain aux_domain;
> -     intel_wakeref_t aux_wakeref;
> +     struct ref_tracker *aux_wakeref;
>       struct ref_tracker *pps_wakeref = NULL;
>       int i, ret, recv_bytes;
>       int try, clock = 0;
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
> b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> index e0e5e5f65d19..9aa84a430f09 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> @@ -547,7 +547,7 @@ static bool ibx_pch_dpll_get_hw_state(struct 
> intel_display *display,
>  {
>       struct i9xx_dpll_hw_state *hw_state = &dpll_hw_state->i9xx;
>       const enum intel_dpll_id id = pll->info->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u32 val;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> @@ -768,7 +768,7 @@ static bool hsw_ddi_wrpll_get_hw_state(struct 
> intel_display *display,
>  {
>       struct hsw_dpll_hw_state *hw_state = &dpll_hw_state->hsw;
>       const enum intel_dpll_id id = pll->info->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u32 val;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> @@ -789,7 +789,7 @@ static bool hsw_ddi_spll_get_hw_state(struct 
> intel_display *display,
>                                     struct intel_dpll_hw_state *dpll_hw_state)
>  {
>       struct hsw_dpll_hw_state *hw_state = &dpll_hw_state->hsw;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u32 val;
>  
>       wakeref = intel_display_power_get_if_enabled(display,
> @@ -1447,7 +1447,7 @@ static bool skl_ddi_pll_get_hw_state(struct 
> intel_display *display,
>       struct skl_dpll_hw_state *hw_state = &dpll_hw_state->skl;
>       const struct skl_dpll_regs *regs = skl_dpll_regs;
>       const enum intel_dpll_id id = pll->info->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>       u32 val;
>  
> @@ -1485,7 +1485,7 @@ static bool skl_ddi_dpll0_get_hw_state(struct 
> intel_display *display,
>       struct skl_dpll_hw_state *hw_state = &dpll_hw_state->skl;
>       const struct skl_dpll_regs *regs = skl_dpll_regs;
>       const enum intel_dpll_id id = pll->info->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u32 val;
>       bool ret;
>  
> @@ -2188,7 +2188,7 @@ static bool bxt_ddi_pll_get_hw_state(struct 
> intel_display *display,
>  {
>       struct bxt_dpll_hw_state *hw_state = &dpll_hw_state->bxt;
>       enum port port = (enum port)pll->info->id; /* 1:1 port->PLL mapping */
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       enum dpio_phy phy;
>       enum dpio_channel ch;
>       u32 val;
> @@ -3598,7 +3598,7 @@ static bool mg_pll_get_hw_state(struct intel_display 
> *display,
>       struct icl_dpll_hw_state *hw_state = &dpll_hw_state->icl;
>       const enum intel_dpll_id id = pll->info->id;
>       enum tc_port tc_port = icl_pll_id_to_tc_port(id);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret = false;
>       u32 val;
>  
> @@ -3665,7 +3665,7 @@ static bool dkl_pll_get_hw_state(struct intel_display 
> *display,
>       struct icl_dpll_hw_state *hw_state = &dpll_hw_state->icl;
>       const enum intel_dpll_id id = pll->info->id;
>       enum tc_port tc_port = icl_pll_id_to_tc_port(id);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret = false;
>       u32 val;
>  
> @@ -3737,7 +3737,7 @@ static bool icl_pll_get_hw_state(struct intel_display 
> *display,
>  {
>       struct icl_dpll_hw_state *hw_state = &dpll_hw_state->icl;
>       const enum intel_dpll_id id = pll->info->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret = false;
>       u32 val;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.h 
> b/drivers/gpu/drm/i915/display/intel_dpll_mgr.h
> index 322af5c55d7c..5b71c860515f 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.h
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.h
> @@ -28,7 +28,6 @@
>  #include <linux/types.h>
>  
>  #include "intel_display_power.h"
> -#include "intel_wakeref.h"
>  
>  #define for_each_dpll(__display, __pll, __i) \
>       for ((__i) = 0; (__i) < (__display)->dpll.num_dpll && \
> @@ -42,6 +41,7 @@ struct intel_crtc_state;
>  struct intel_dpll_funcs;
>  struct intel_encoder;
>  struct intel_shared_dpll;
> +struct ref_tracker;
>  
>  /**
>   * enum intel_dpll_id - possible DPLL ids
> @@ -396,7 +396,7 @@ struct intel_dpll {
>        * @wakeref: In some platforms a device-level runtime pm reference may
>        * need to be grabbed to disable DC states while this DPLL is enabled
>        */
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  };
>  
>  #define SKL_DPLL0 0
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h 
> b/drivers/gpu/drm/i915/display/intel_dsi.h
> index 89c7166a3860..489d26ffd235 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> @@ -29,6 +29,9 @@
>  
>  #include "intel_display_types.h"
>  
> +struct intel_dsi_host;
> +struct ref_tracker;
> +
>  #define INTEL_DSI_VIDEO_MODE 0
>  #define INTEL_DSI_COMMAND_MODE       1
>  
> @@ -37,13 +40,11 @@
>  #define DSI_DUAL_LINK_FRONT_BACK     1
>  #define DSI_DUAL_LINK_PIXEL_ALT              2
>  
> -struct intel_dsi_host;
> -
>  struct intel_dsi {
>       struct intel_encoder base;
>  
>       struct intel_dsi_host *dsi_hosts[I915_MAX_PORTS];
> -     intel_wakeref_t io_wakeref[I915_MAX_PORTS];
> +     struct ref_tracker *io_wakeref[I915_MAX_PORTS];
>  
>       /* GPIO Desc for panel and backlight control */
>       struct gpio_desc *gpio_panel;
> diff --git a/drivers/gpu/drm/i915/display/intel_gmbus.c 
> b/drivers/gpu/drm/i915/display/intel_gmbus.c
> index acc85853b2a7..2caff677600c 100644
> --- a/drivers/gpu/drm/i915/display/intel_gmbus.c
> +++ b/drivers/gpu/drm/i915/display/intel_gmbus.c
> @@ -789,7 +789,7 @@ gmbus_xfer(struct i2c_adapter *adapter, struct i2c_msg 
> *msgs, int num)
>  {
>       struct intel_gmbus *bus = to_intel_gmbus(adapter);
>       struct intel_display *display = bus->display;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int ret;
>  
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_GMBUS);
> @@ -829,7 +829,7 @@ int intel_gmbus_output_aksv(struct i2c_adapter *adapter)
>                       .buf = buf,
>               }
>       };
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int ret;
>  
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_GMBUS);
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c 
> b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 908faf17f93d..055e68810d0d 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2518,7 +2518,7 @@ intel_hdmi_set_edid(struct drm_connector *_connector)
>       struct intel_display *display = to_intel_display(connector);
>       struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
>       struct i2c_adapter *ddc = connector->base.ddc;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       const struct drm_edid *drm_edid;
>       bool connected = false;
>  
> @@ -2561,7 +2561,7 @@ intel_hdmi_detect(struct drm_connector *_connector, 
> bool force)
>       enum drm_connector_status status = connector_status_disconnected;
>       struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
>       struct intel_encoder *encoder = &hdmi_to_dig_port(intel_hdmi)->base;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n",
>                   connector->base.base.id, connector->base.name);
> diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c 
> b/drivers/gpu/drm/i915/display/intel_hotplug.c
> index 7575a063f7be..970aa95ee344 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> @@ -785,7 +785,7 @@ static void i915_hpd_poll_init_work(struct work_struct 
> *work)
>               container_of(work, typeof(*display), hotplug.poll_init_work);
>       struct drm_connector_list_iter conn_iter;
>       struct intel_connector *connector;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool enabled;
>  
>       mutex_lock(&display->drm->mode_config.mutex);
> diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy.c 
> b/drivers/gpu/drm/i915/display/intel_lt_phy.c
> index aaf5a2433690..939c8975fd4c 100644
> --- a/drivers/gpu/drm/i915/display/intel_lt_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_lt_phy.c
> @@ -1324,11 +1324,11 @@ intel_lt_phy_config_changed(struct intel_encoder 
> *encoder,
>       return true;
>  }
>  
> -static intel_wakeref_t intel_lt_phy_transaction_begin(struct intel_encoder 
> *encoder)
> +static struct ref_tracker *intel_lt_phy_transaction_begin(struct 
> intel_encoder *encoder)
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       intel_psr_pause(intel_dp);
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_DC_OFF);
> @@ -1336,7 +1336,7 @@ static intel_wakeref_t 
> intel_lt_phy_transaction_begin(struct intel_encoder *enco
>       return wakeref;
>  }
>  
> -static void intel_lt_phy_transaction_end(struct intel_encoder *encoder, 
> intel_wakeref_t wakeref)
> +static void intel_lt_phy_transaction_end(struct intel_encoder *encoder, 
> struct ref_tracker *wakeref)
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> @@ -1932,7 +1932,7 @@ void intel_lt_phy_pll_enable(struct intel_encoder 
> *encoder,
>       u8 owned_lane_mask = intel_lt_phy_get_owned_lane_mask(encoder);
>       enum phy phy = intel_encoder_to_phy(encoder);
>       enum port port = encoder->port;
> -     intel_wakeref_t wakeref = 0;
> +     struct ref_tracker *wakeref = 0;
>       u32 lane_phy_pulse_status = owned_lane_mask == INTEL_LT_PHY_BOTH_LANES
>                                       ? (XE3PLPDP_LANE_PHY_PULSE_STATUS(0) |
>                                          XE3PLPDP_LANE_PHY_PULSE_STATUS(1))
> @@ -2060,7 +2060,7 @@ void intel_lt_phy_pll_disable(struct intel_encoder 
> *encoder)
>       struct intel_display *display = to_intel_display(encoder);
>       enum phy phy = intel_encoder_to_phy(encoder);
>       enum port port = encoder->port;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u8 owned_lane_mask = intel_lt_phy_get_owned_lane_mask(encoder);
>       u32 lane_pipe_reset = owned_lane_mask == INTEL_LT_PHY_BOTH_LANES
>                               ? (XELPDP_LANE_PIPE_RESET(0) |
> @@ -2137,7 +2137,7 @@ void intel_lt_phy_set_signal_levels(struct 
> intel_encoder *encoder,
>       struct intel_display *display = to_intel_display(encoder);
>       const struct intel_ddi_buf_trans *trans;
>       u8 owned_lane_mask;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int n_entries, ln;
>       struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>  
> @@ -2222,7 +2222,7 @@ void intel_lt_phy_pll_readout_hw_state(struct 
> intel_encoder *encoder,
>  {
>       u8 owned_lane_mask;
>       u8 lane;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       int i, j, k;
>  
>       pll_state->tbt_mode = 
> intel_tc_port_in_tbt_alt_mode(enc_to_dig_port(encoder));
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c 
> b/drivers/gpu/drm/i915/display/intel_lvds.c
> index 89aeb4fb340e..457d60863536 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -105,7 +105,7 @@ static bool intel_lvds_get_hw_state(struct intel_encoder 
> *encoder,
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_lvds_encoder *lvds_encoder = to_lvds_encoder(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       wakeref = intel_display_power_get_if_enabled(display, 
> encoder->power_domain);
> diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c 
> b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> index 0dcb0597879a..d10cbf69a5f8 100644
> --- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> +++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> @@ -940,7 +940,7 @@ void intel_modeset_setup_hw_state(struct intel_display 
> *display,
>  {
>       struct intel_encoder *encoder;
>       struct intel_crtc *crtc;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       wakeref = intel_display_power_get(display, POWER_DOMAIN_INIT);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c 
> b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> index 71cb0178c8b1..57586c78582d 100644
> --- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> +++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> @@ -588,7 +588,7 @@ int intel_crtc_set_crc_source(struct drm_crtc *_crtc, 
> const char *source_name)
>       enum intel_display_power_domain power_domain;
>       enum intel_pipe_crc_source source;
>       enum pipe pipe = crtc->pipe;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u32 val = 0; /* shut up gcc */
>       int ret = 0;
>       bool enable;
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
> b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 69b6873a6044..2d1c293aeff6 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -462,7 +462,7 @@ vlv_sprite_get_hw_state(struct intel_plane *plane,
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
>       enum plane_id plane_id = plane->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> @@ -893,7 +893,7 @@ ivb_sprite_get_hw_state(struct intel_plane *plane,
>  {
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> @@ -1233,7 +1233,7 @@ g4x_sprite_get_hw_state(struct intel_plane *plane,
>  {
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.c 
> b/drivers/gpu/drm/i915/display/intel_tc.c
> index c678216af352..064f572bbc85 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.c
> +++ b/drivers/gpu/drm/i915/display/intel_tc.c
> @@ -51,7 +51,7 @@ struct intel_tc_port {
>       const struct intel_tc_phy_ops *phy_ops;
>  
>       struct mutex lock;      /* protects the TypeC port mode */
> -     intel_wakeref_t lock_wakeref;
> +     struct ref_tracker *lock_wakeref;
>  #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
>       enum intel_display_power_domain lock_power_domain;
>  #endif
> @@ -182,7 +182,7 @@ bool intel_tc_cold_requires_aux_pw(struct 
> intel_digital_port *dig_port)
>              intel_display_power_legacy_aux_domain(display, dig_port->aux_ch);
>  }
>  
> -static intel_wakeref_t
> +static struct ref_tracker *
>  __tc_cold_block(struct intel_tc_port *tc, enum intel_display_power_domain 
> *domain)
>  {
>       struct intel_display *display = to_intel_display(tc->dig_port);
> @@ -192,11 +192,11 @@ __tc_cold_block(struct intel_tc_port *tc, enum 
> intel_display_power_domain *domai
>       return intel_display_power_get(display, *domain);
>  }
>  
> -static intel_wakeref_t
> +static struct ref_tracker *
>  tc_cold_block(struct intel_tc_port *tc)
>  {
>       enum intel_display_power_domain domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>  
>       wakeref = __tc_cold_block(tc, &domain);
>  #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
> @@ -207,7 +207,7 @@ tc_cold_block(struct intel_tc_port *tc)
>  
>  static void
>  __tc_cold_unblock(struct intel_tc_port *tc, enum intel_display_power_domain 
> domain,
> -               intel_wakeref_t wakeref)
> +               struct ref_tracker *wakeref)
>  {
>       struct intel_display *display = to_intel_display(tc->dig_port);
>  
> @@ -215,7 +215,7 @@ __tc_cold_unblock(struct intel_tc_port *tc, enum 
> intel_display_power_domain doma
>  }
>  
>  static void
> -tc_cold_unblock(struct intel_tc_port *tc, intel_wakeref_t wakeref)
> +tc_cold_unblock(struct intel_tc_port *tc, struct ref_tracker *wakeref)
>  {
>       struct intel_display __maybe_unused *display = 
> to_intel_display(tc->dig_port);
>       enum intel_display_power_domain domain = tc_phy_cold_off_domain(tc);
> @@ -625,7 +625,7 @@ static bool icl_tc_phy_is_owned(struct intel_tc_port *tc)
>  static void icl_tc_phy_get_hw_state(struct intel_tc_port *tc)
>  {
>       enum intel_display_power_domain domain;
> -     intel_wakeref_t tc_cold_wref;
> +     struct ref_tracker *tc_cold_wref;
>  
>       tc_cold_wref = __tc_cold_block(tc, &domain);
>  
> @@ -892,7 +892,7 @@ static void adlp_tc_phy_get_hw_state(struct intel_tc_port 
> *tc)
>       struct intel_display *display = to_intel_display(tc->dig_port);
>       enum intel_display_power_domain port_power_domain =
>               tc_port_power_domain(tc);
> -     intel_wakeref_t port_wakeref;
> +     struct ref_tracker *port_wakeref;
>  
>       port_wakeref = intel_display_power_get(display, port_power_domain);
>  
> @@ -911,7 +911,7 @@ static bool adlp_tc_phy_connect(struct intel_tc_port *tc, 
> int required_lanes)
>       struct intel_display *display = to_intel_display(tc->dig_port);
>       enum intel_display_power_domain port_power_domain =
>               tc_port_power_domain(tc);
> -     intel_wakeref_t port_wakeref;
> +     struct ref_tracker *port_wakeref;
>  
>       if (tc->mode == TC_PORT_TBT_ALT) {
>               tc->lock_wakeref = tc_cold_block(tc);
> @@ -963,7 +963,7 @@ static void adlp_tc_phy_disconnect(struct intel_tc_port 
> *tc)
>       struct intel_display *display = to_intel_display(tc->dig_port);
>       enum intel_display_power_domain port_power_domain =
>               tc_port_power_domain(tc);
> -     intel_wakeref_t port_wakeref;
> +     struct ref_tracker *port_wakeref;
>  
>       port_wakeref = intel_display_power_get(display, port_power_domain);
>  
> @@ -1169,7 +1169,7 @@ static bool xelpdp_tc_phy_is_owned(struct intel_tc_port 
> *tc)
>  static void xelpdp_tc_phy_get_hw_state(struct intel_tc_port *tc)
>  {
>       struct intel_display *display = to_intel_display(tc->dig_port);
> -     intel_wakeref_t tc_cold_wref;
> +     struct ref_tracker *tc_cold_wref;
>       enum intel_display_power_domain domain;
>  
>       tc_cold_wref = __tc_cold_block(tc, &domain);
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c 
> b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index 0e727fc5e80c..ad5fe841e4b3 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -999,7 +999,7 @@ void intel_dsc_get_config(struct intel_crtc_state 
> *crtc_state)
>       struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>       enum intel_display_power_domain power_domain;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       u32 dss_ctl1, dss_ctl2;
>  
>       if (!intel_dsc_source_support(crtc_state))
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c 
> b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index 89c8003ccfe7..0b5a1ec2f77a 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -939,7 +939,7 @@ skl_plane_get_hw_state(struct intel_plane *plane,
>       struct intel_display *display = to_intel_display(plane);
>       enum intel_display_power_domain power_domain;
>       enum plane_id plane_id = plane->id;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       bool ret;
>  
>       power_domain = POWER_DOMAIN_PIPE(plane->pipe);
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c 
> b/drivers/gpu/drm/i915/display/skl_watermark.c
> index 7964cfffdaae..a6aab79812e5 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -718,7 +718,7 @@ static void skl_pipe_ddb_get_hw_state(struct intel_crtc 
> *crtc,
>       struct intel_display *display = to_intel_display(crtc);
>       enum intel_display_power_domain power_domain;
>       enum pipe pipe = crtc->pipe;
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       enum plane_id plane_id;
>  
>       power_domain = POWER_DOMAIN_PIPE(pipe);
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c 
> b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 19bdd8662359..d705af3bf8ba 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -936,7 +936,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder 
> *encoder,
>  {
>       struct intel_display *display = to_intel_display(encoder);
>       struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> -     intel_wakeref_t wakeref;
> +     struct ref_tracker *wakeref;
>       enum port port;
>       bool active = false;
>  
> diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h 
> b/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
> index 2a32faea9db5..910a8a60da64 100644
> --- a/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
> +++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
> @@ -3,8 +3,4 @@
>   * Copyright © 2023 Intel Corporation
>   */
>  
> -#include <linux/types.h>
> -
> -typedef struct ref_tracker *intel_wakeref_t;
> -
>  #define INTEL_WAKEREF_DEF ERR_PTR(-ENOENT)
> diff --git a/drivers/gpu/drm/xe/display/xe_display_rpm.c 
> b/drivers/gpu/drm/xe/display/xe_display_rpm.c
> index 340f65884812..9416ec784e39 100644
> --- a/drivers/gpu/drm/xe/display/xe_display_rpm.c
> +++ b/drivers/gpu/drm/xe/display/xe_display_rpm.c
> @@ -5,6 +5,7 @@
>  
>  #include "intel_display_core.h"
>  #include "intel_display_rpm.h"
> +#include "intel_wakeref.h"

Just to be sure this is not a stray change, why did you add it here?


>  #include "xe_device.h"
>  #include "xe_device_types.h"
>  #include "xe_pm.h"

Regardless:

Reviewed-by: Luca Coelho <[email protected]>

--
Cheers,
Luca.

Reply via email to