drm/amd/display: Make observers const-correct
authorDominik Kaszewski <dominik.kaszewski@amd.com>
Thu, 16 Oct 2025 11:46:25 +0000 (13:46 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 28 Oct 2025 13:58:25 +0000 (09:58 -0400)
[Why]
Observers which do not modify their pointer arguments should take
them as const. This clearly signals their intent to the caller,
making it clear that the function is safe to call multiple times,
or remove the call if the result is no longer necessary.

[How]
Made const-correct all of the functions below:
* full_update_required[_weak]
* fast_updates_exist
* fast_update_only
* dc_can_clear_cursor_limit
* dc_stream_get_status (added const named overload)

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Dominik Kaszewski <dominik.kaszewski@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dc_stream.h

index 1851a35..b720e00 100644 (file)
@@ -3427,11 +3427,12 @@ static void update_seamless_boot_flags(struct dc *dc,
        }
 }
 
-static bool full_update_required_weak(struct dc *dc,
-               struct dc_surface_update *srf_updates,
+static bool full_update_required_weak(
+               const struct dc *dc,
+               const struct dc_surface_update *srf_updates,
                int surface_count,
-               struct dc_stream_update *stream_update,
-               struct dc_stream_state *stream);
+               const struct dc_stream_update *stream_update,
+               const struct dc_stream_state *stream);
 
 /**
  * update_planes_and_stream_state() - The function takes planes and stream
@@ -5015,7 +5016,7 @@ void populate_fast_updates(struct dc_fast_update *fast_update,
        }
 }
 
-static bool fast_updates_exist(struct dc_fast_update *fast_update, int surface_count)
+static bool fast_updates_exist(const struct dc_fast_update *fast_update, int surface_count)
 {
        int i;
 
@@ -5056,11 +5057,12 @@ bool fast_nonaddr_updates_exist(struct dc_fast_update *fast_update, int surface_
        return false;
 }
 
-static bool full_update_required_weak(struct dc *dc,
-               struct dc_surface_update *srf_updates,
+static bool full_update_required_weak(
+               const struct dc *dc,
+               const struct dc_surface_update *srf_updates,
                int surface_count,
-               struct dc_stream_update *stream_update,
-               struct dc_stream_state *stream)
+               const struct dc_stream_update *stream_update,
+               const struct dc_stream_state *stream)
 {
        const struct dc_state *context = dc->current_state;
        if (srf_updates)
@@ -5069,7 +5071,7 @@ static bool full_update_required_weak(struct dc *dc,
                                return true;
 
        if (stream) {
-               const struct dc_stream_status *stream_status = dc_stream_get_status(stream);
+               const struct dc_stream_status *stream_status = dc_stream_get_status_const(stream);
                if (stream_status == NULL || stream_status->plane_count != surface_count)
                        return true;
        }
@@ -5082,11 +5084,12 @@ static bool full_update_required_weak(struct dc *dc,
        return false;
 }
 
-static bool full_update_required(struct dc *dc,
-               struct dc_surface_update *srf_updates,
+static bool full_update_required(
+               const struct dc *dc,
+               const struct dc_surface_update *srf_updates,
                int surface_count,
-               struct dc_stream_update *stream_update,
-               struct dc_stream_state *stream)
+               const struct dc_stream_update *stream_update,
+               const struct dc_stream_state *stream)
 {
        if (full_update_required_weak(dc, srf_updates, surface_count, stream_update, stream))
                return true;
@@ -5146,12 +5149,13 @@ static bool full_update_required(struct dc *dc,
        return false;
 }
 
-static bool fast_update_only(struct dc *dc,
-               struct dc_fast_update *fast_update,
-               struct dc_surface_update *srf_updates,
+static bool fast_update_only(
+               const struct dc *dc,
+               const struct dc_fast_update *fast_update,
+               const struct dc_surface_update *srf_updates,
                int surface_count,
-               struct dc_stream_update *stream_update,
-               struct dc_stream_state *stream)
+               const struct dc_stream_update *stream_update,
+               const struct dc_stream_state *stream)
 {
        return fast_updates_exist(fast_update, surface_count)
                        && !full_update_required(dc, srf_updates, surface_count, stream_update, stream);
@@ -6383,7 +6387,7 @@ bool dc_is_cursor_limit_pending(struct dc *dc)
        return false;
 }
 
-bool dc_can_clear_cursor_limit(struct dc *dc)
+bool dc_can_clear_cursor_limit(const struct dc *dc)
 {
        uint32_t i;
 
index 096fbb8..6d309c3 100644 (file)
@@ -224,6 +224,14 @@ struct dc_stream_status *dc_stream_get_status(
        return dc_state_get_stream_status(dc->current_state, stream);
 }
 
+const struct dc_stream_status *dc_stream_get_status_const(
+       const struct dc_stream_state *stream)
+{
+       struct dc *dc = stream->ctx->dc;
+
+       return dc_state_get_stream_status(dc->current_state, stream);
+}
+
 void program_cursor_attributes(
        struct dc *dc,
        struct dc_stream_state *stream)
index 142cbb7..5bfd764 100644 (file)
@@ -2757,7 +2757,7 @@ bool dc_is_timing_changed(struct dc_stream_state *cur_stream,
                       struct dc_stream_state *new_stream);
 
 bool dc_is_cursor_limit_pending(struct dc *dc);
-bool dc_can_clear_cursor_limit(struct dc *dc);
+bool dc_can_clear_cursor_limit(const struct dc *dc);
 
 /**
  * dc_get_underflow_debug_data_for_otg() - Retrieve underflow debug data.
index 75869ee..321cfe9 100644 (file)
@@ -491,8 +491,8 @@ void update_stream_signal(struct dc_stream_state *stream, struct dc_sink *sink);
 void dc_stream_retain(struct dc_stream_state *dc_stream);
 void dc_stream_release(struct dc_stream_state *dc_stream);
 
-struct dc_stream_status *dc_stream_get_status(
-       struct dc_stream_state *dc_stream);
+struct dc_stream_status *dc_stream_get_status(struct dc_stream_state *dc_stream);
+const struct dc_stream_status *dc_stream_get_status_const(const struct dc_stream_state *dc_stream);
 
 /*******************************************************************************
  * Cursor interfaces - To manages the cursor within a stream