]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
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 1851a35f629f5d8f17dd33b2851d328a6974e41c..b720e007c654098fc49835e20f3db7ca7a0a5851 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 096fbb8ad24cde33289dbb610ab23964247df97f..6d309c3202533496ea833379e0fd913fda9e8ae0 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 142cbb7c77cd6b8bd17c3a2fa93b1fdb0116a951..5bfd764467a17afee13565b2e7c5d5ce3432f79f 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 75869eed1d3a5fb0017ef8c72743b193b70bbd17..321cfe92d799adc7e09492a9689612c463f2fbf2 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