Quoting Jani Nikula (2024-12-31 13:27:40-03:00) >Going forward, struct intel_display is the main display device >structure. Convert intel_global_state.[ch] to it. > >This allows us to make intel_pmdemand.c completely independent of >i915_drv.h. > >Cc: Gustavo Sousa <gustavo.sousa@xxxxxxxxx> >Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> Reviewed-by: Gustavo Sousa <gustavo.sousa@xxxxxxxxx> with git show -W --word-diff and trust in the compiler. >--- > drivers/gpu/drm/i915/display/intel_bw.c | 3 +- > drivers/gpu/drm/i915/display/intel_cdclk.c | 3 +- > .../drm/i915/display/intel_display_driver.c | 4 +- > .../gpu/drm/i915/display/intel_global_state.c | 42 +++++++++---------- > .../gpu/drm/i915/display/intel_global_state.h | 6 +-- > drivers/gpu/drm/i915/display/intel_pmdemand.c | 6 +-- > drivers/gpu/drm/i915/display/skl_watermark.c | 3 +- > 7 files changed, 33 insertions(+), 34 deletions(-) > >diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c >index 08e8a67ca74c..23edc81741de 100644 >--- a/drivers/gpu/drm/i915/display/intel_bw.c >+++ b/drivers/gpu/drm/i915/display/intel_bw.c >@@ -1447,13 +1447,14 @@ static const struct intel_global_state_funcs intel_bw_funcs = { > > int intel_bw_init(struct drm_i915_private *i915) > { >+ struct intel_display *display = &i915->display; > struct intel_bw_state *state; > > state = kzalloc(sizeof(*state), GFP_KERNEL); > if (!state) > return -ENOMEM; > >- intel_atomic_global_obj_init(i915, &i915->display.bw.obj, >+ intel_atomic_global_obj_init(display, &display->bw.obj, > &state->base, &intel_bw_funcs); > > /* >diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c >index 3506e576bf6b..c7a603589412 100644 >--- a/drivers/gpu/drm/i915/display/intel_cdclk.c >+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c >@@ -3217,14 +3217,13 @@ int intel_cdclk_state_set_joined_mbus(struct intel_atomic_state *state, bool joi > > int intel_cdclk_init(struct intel_display *display) > { >- struct drm_i915_private *dev_priv = to_i915(display->drm); > struct intel_cdclk_state *cdclk_state; > > cdclk_state = kzalloc(sizeof(*cdclk_state), GFP_KERNEL); > if (!cdclk_state) > return -ENOMEM; > >- intel_atomic_global_obj_init(dev_priv, &display->cdclk.obj, >+ intel_atomic_global_obj_init(display, &display->cdclk.obj, > &cdclk_state->base, &intel_cdclk_funcs); > > return 0; >diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c >index c4cfb0406fa2..1aa0b298c278 100644 >--- a/drivers/gpu/drm/i915/display/intel_display_driver.c >+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c >@@ -163,9 +163,7 @@ static void intel_mode_config_init(struct intel_display *display) > > static void intel_mode_config_cleanup(struct intel_display *display) > { >- struct drm_i915_private *i915 = to_i915(display->drm); >- >- intel_atomic_global_obj_cleanup(i915); >+ intel_atomic_global_obj_cleanup(display); > drm_mode_config_cleanup(display->drm); > } > >diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c >index cbcd1e91b7be..8a49e2bb37fa 100644 >--- a/drivers/gpu/drm/i915/display/intel_global_state.c >+++ b/drivers/gpu/drm/i915/display/intel_global_state.c >@@ -75,7 +75,7 @@ intel_atomic_global_state_get(struct intel_global_state *obj_state) > return obj_state; > } > >-void intel_atomic_global_obj_init(struct drm_i915_private *dev_priv, >+void intel_atomic_global_obj_init(struct intel_display *display, > struct intel_global_obj *obj, > struct intel_global_state *state, > const struct intel_global_state_funcs *funcs) >@@ -88,26 +88,26 @@ void intel_atomic_global_obj_init(struct drm_i915_private *dev_priv, > > obj->state = state; > obj->funcs = funcs; >- list_add_tail(&obj->head, &dev_priv->display.global.obj_list); >+ list_add_tail(&obj->head, &display->global.obj_list); > } > >-void intel_atomic_global_obj_cleanup(struct drm_i915_private *dev_priv) >+void intel_atomic_global_obj_cleanup(struct intel_display *display) > { > struct intel_global_obj *obj, *next; > >- list_for_each_entry_safe(obj, next, &dev_priv->display.global.obj_list, head) { >+ list_for_each_entry_safe(obj, next, &display->global.obj_list, head) { > list_del(&obj->head); > >- drm_WARN_ON(&dev_priv->drm, kref_read(&obj->state->ref) != 1); >+ drm_WARN_ON(display->drm, kref_read(&obj->state->ref) != 1); > intel_atomic_global_state_put(obj->state); > } > } > >-static void assert_global_state_write_locked(struct drm_i915_private *dev_priv) >+static void assert_global_state_write_locked(struct intel_display *display) > { > struct intel_crtc *crtc; > >- for_each_intel_crtc(&dev_priv->drm, crtc) >+ for_each_intel_crtc(display->drm, crtc) > drm_modeset_lock_assert_held(&crtc->base.mutex); > } > >@@ -126,23 +126,23 @@ static bool modeset_lock_is_held(struct drm_modeset_acquire_ctx *ctx, > > static void assert_global_state_read_locked(struct intel_atomic_state *state) > { >+ struct intel_display *display = to_intel_display(state); > struct drm_modeset_acquire_ctx *ctx = state->base.acquire_ctx; >- struct drm_i915_private *dev_priv = to_i915(state->base.dev); > struct intel_crtc *crtc; > >- for_each_intel_crtc(&dev_priv->drm, crtc) { >+ for_each_intel_crtc(display->drm, crtc) { > if (modeset_lock_is_held(ctx, &crtc->base.mutex)) > return; > } > >- drm_WARN(&dev_priv->drm, 1, "Global state not read locked\n"); >+ drm_WARN(display->drm, 1, "Global state not read locked\n"); > } > > struct intel_global_state * > intel_atomic_get_global_obj_state(struct intel_atomic_state *state, > struct intel_global_obj *obj) > { >- struct drm_i915_private *i915 = to_i915(state->base.dev); >+ struct intel_display *display = to_intel_display(state); > int index, num_objs, i; > size_t size; > struct __intel_global_objs_state *arr; >@@ -184,7 +184,7 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, > > state->num_global_objs = num_objs; > >- drm_dbg_atomic(&i915->drm, "Added new global object %p state %p to %p\n", >+ drm_dbg_atomic(display->drm, "Added new global object %p state %p to %p\n", > obj, obj_state, state); > > return obj_state; >@@ -218,14 +218,14 @@ intel_atomic_get_new_global_obj_state(struct intel_atomic_state *state, > > void intel_atomic_swap_global_state(struct intel_atomic_state *state) > { >- struct drm_i915_private *dev_priv = to_i915(state->base.dev); >+ struct intel_display *display = to_intel_display(state); > struct intel_global_state *old_obj_state, *new_obj_state; > struct intel_global_obj *obj; > int i; > > for_each_oldnew_global_obj_in_state(state, obj, old_obj_state, > new_obj_state, i) { >- drm_WARN_ON(&dev_priv->drm, obj->state != old_obj_state); >+ drm_WARN_ON(display->drm, obj->state != old_obj_state); > > /* > * If the new state wasn't modified (and properly >@@ -234,7 +234,7 @@ void intel_atomic_swap_global_state(struct intel_atomic_state *state) > if (!new_obj_state->changed) > continue; > >- assert_global_state_write_locked(dev_priv); >+ assert_global_state_write_locked(display); > > old_obj_state->state = state; > new_obj_state->state = NULL; >@@ -265,10 +265,10 @@ void intel_atomic_clear_global_state(struct intel_atomic_state *state) > int intel_atomic_lock_global_state(struct intel_global_state *obj_state) > { > struct intel_atomic_state *state = obj_state->state; >- struct drm_i915_private *dev_priv = to_i915(state->base.dev); >+ struct intel_display *display = to_intel_display(state); > struct intel_crtc *crtc; > >- for_each_intel_crtc(&dev_priv->drm, crtc) { >+ for_each_intel_crtc(display->drm, crtc) { > int ret; > > ret = drm_modeset_lock(&crtc->base.mutex, >@@ -298,10 +298,10 @@ int intel_atomic_serialize_global_state(struct intel_global_state *obj_state) > bool > intel_atomic_global_state_is_serialized(struct intel_atomic_state *state) > { >- struct drm_i915_private *i915 = to_i915(state->base.dev); >+ struct intel_display *display = to_intel_display(state); > struct intel_crtc *crtc; > >- for_each_intel_crtc(&i915->drm, crtc) >+ for_each_intel_crtc(display->drm, crtc) > if (!intel_atomic_get_new_crtc_state(state, crtc)) > return false; > return true; >@@ -344,7 +344,7 @@ intel_atomic_global_state_setup_commit(struct intel_atomic_state *state) > int > intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *state) > { >- struct drm_i915_private *i915 = to_i915(state->base.dev); >+ struct intel_display *display = to_intel_display(state); > const struct intel_global_state *old_obj_state; > struct intel_global_obj *obj; > int i; >@@ -358,7 +358,7 @@ intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *state > > ret = wait_for_completion_timeout(&commit->done, 10 * HZ); > if (ret == 0) { >- drm_err(&i915->drm, "global state timed out\n"); >+ drm_err(display->drm, "global state timed out\n"); > return -ETIMEDOUT; > } > } >diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h >index 6506a8e32972..d42fb2547ee9 100644 >--- a/drivers/gpu/drm/i915/display/intel_global_state.h >+++ b/drivers/gpu/drm/i915/display/intel_global_state.h >@@ -9,8 +9,8 @@ > #include <linux/kref.h> > #include <linux/list.h> > >-struct drm_i915_private; > struct intel_atomic_state; >+struct intel_display; > struct intel_global_obj; > struct intel_global_state; > >@@ -69,11 +69,11 @@ struct __intel_global_objs_state { > struct intel_global_state *state, *old_state, *new_state; > }; > >-void intel_atomic_global_obj_init(struct drm_i915_private *dev_priv, >+void intel_atomic_global_obj_init(struct intel_display *display, > struct intel_global_obj *obj, > struct intel_global_state *state, > const struct intel_global_state_funcs *funcs); >-void intel_atomic_global_obj_cleanup(struct drm_i915_private *dev_priv); >+void intel_atomic_global_obj_cleanup(struct intel_display *display); > > struct intel_global_state * > intel_atomic_get_global_obj_state(struct intel_atomic_state *state, >diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c >index 9373cf2885ab..975520322136 100644 >--- a/drivers/gpu/drm/i915/display/intel_pmdemand.c >+++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c >@@ -5,14 +5,15 @@ > > #include <linux/bitops.h> > >-#include "i915_drv.h" > #include "i915_reg.h" >+#include "i915_utils.h" > #include "intel_atomic.h" > #include "intel_bw.h" > #include "intel_cdclk.h" > #include "intel_de.h" > #include "intel_display_trace.h" > #include "intel_pmdemand.h" >+#include "intel_step.h" > #include "skl_watermark.h" > > struct pmdemand_params { >@@ -115,14 +116,13 @@ intel_atomic_get_new_pmdemand_state(struct intel_atomic_state *state) > > int intel_pmdemand_init(struct intel_display *display) > { >- struct drm_i915_private *i915 = to_i915(display->drm); > struct intel_pmdemand_state *pmdemand_state; > > pmdemand_state = kzalloc(sizeof(*pmdemand_state), GFP_KERNEL); > if (!pmdemand_state) > return -ENOMEM; > >- intel_atomic_global_obj_init(i915, &display->pmdemand.obj, >+ intel_atomic_global_obj_init(display, &display->pmdemand.obj, > &pmdemand_state->base, > &intel_pmdemand_funcs); > >diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c >index 29e8ea91c858..5e6f2afe3cfe 100644 >--- a/drivers/gpu/drm/i915/display/skl_watermark.c >+++ b/drivers/gpu/drm/i915/display/skl_watermark.c >@@ -3326,13 +3326,14 @@ intel_atomic_get_dbuf_state(struct intel_atomic_state *state) > > int intel_dbuf_init(struct drm_i915_private *i915) > { >+ struct intel_display *display = &i915->display; > struct intel_dbuf_state *dbuf_state; > > dbuf_state = kzalloc(sizeof(*dbuf_state), GFP_KERNEL); > if (!dbuf_state) > return -ENOMEM; > >- intel_atomic_global_obj_init(i915, &i915->display.dbuf.obj, >+ intel_atomic_global_obj_init(display, &display->dbuf.obj, > &dbuf_state->base, &intel_dbuf_funcs); > > return 0; >-- >2.39.5 >