Re: [PATCH 4/4] drm/i915/display: convert global state to struct intel_display

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux