]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Clean-up recout calculation for visual confirm
authorSamson Tam <samson.tam@amd.com>
Wed, 24 Apr 2024 12:37:04 +0000 (08:37 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 8 May 2024 19:17:03 +0000 (15:17 -0400)
[Why & How]
Split into a separate adjust and calculate call so
we can let the caller adjust recout

Reviewed-by: Jun Lei <jun.lei@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Samson Tam <samson.tam@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index a48afc307a4e62b4d7ab5275542c33a54322a135..532882ee7b2b7bf6d0408df5b76d5f2a69239b7f 100644 (file)
@@ -973,24 +973,33 @@ static struct rect calculate_mpc_slice_in_timing_active(
        return mpc_rec;
 }
 
-static void adjust_recout_for_visual_confirm(struct rect *recout,
-               struct pipe_ctx *pipe_ctx)
+static void calculate_adjust_recout_for_visual_confirm(struct pipe_ctx *pipe_ctx,
+       int *base_offset, int *dpp_offset)
 {
        struct dc *dc = pipe_ctx->stream->ctx->dc;
-       int dpp_offset, base_offset;
+       *base_offset = 0;
+       *dpp_offset = 0;
 
        if (dc->debug.visual_confirm == VISUAL_CONFIRM_DISABLE || !pipe_ctx->plane_res.dpp)
                return;
 
-       dpp_offset = pipe_ctx->stream->timing.v_addressable / VISUAL_CONFIRM_DPP_OFFSET_DENO;
-       dpp_offset *= pipe_ctx->plane_res.dpp->inst;
+       *dpp_offset = pipe_ctx->stream->timing.v_addressable / VISUAL_CONFIRM_DPP_OFFSET_DENO;
+       *dpp_offset *= pipe_ctx->plane_res.dpp->inst;
 
        if ((dc->debug.visual_confirm_rect_height >= VISUAL_CONFIRM_BASE_MIN) &&
                        dc->debug.visual_confirm_rect_height <= VISUAL_CONFIRM_BASE_MAX)
-               base_offset = dc->debug.visual_confirm_rect_height;
+               *base_offset = dc->debug.visual_confirm_rect_height;
        else
-               base_offset = VISUAL_CONFIRM_BASE_DEFAULT;
+               *base_offset = VISUAL_CONFIRM_BASE_DEFAULT;
+}
+
+static void adjust_recout_for_visual_confirm(struct rect *recout,
+               struct pipe_ctx *pipe_ctx)
+{
+       int dpp_offset, base_offset;
 
+       calculate_adjust_recout_for_visual_confirm(pipe_ctx, &base_offset,
+               &dpp_offset);
        recout->height -= base_offset;
        recout->height -= dpp_offset;
 }