OSDN Git Service

drm/amd/display: Fix CAB allocation calculation
authorAlvin Lee <Alvin.Lee2@amd.com>
Thu, 15 Sep 2022 15:32:19 +0000 (11:32 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 29 Sep 2022 13:41:45 +0000 (09:41 -0400)
[Description]
Accidentally added when should have subtracted
in calculation

Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Jasdeep Dhillon <jdhillon@amd.com>
Signed-off-by: Alvin Lee <Alvin.Lee2@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/dcn32/dcn32_hwseq.c

index 0be0223..84a958d 100644 (file)
@@ -243,7 +243,7 @@ static uint32_t dcn32_calculate_cab_allocation(struct dc *dc, struct dc_state *c
                 * mall_alloc_width_blk_aligned_l/c = full_vp_width_blk_aligned_l/c
                 */
                mall_alloc_width_blk_aligned = ((pipe->plane_res.scl_data.viewport.x +
-                               pipe->plane_res.scl_data.viewport.width + mblk_width - 1) / mblk_width * mblk_width) +
+                               pipe->plane_res.scl_data.viewport.width + mblk_width - 1) / mblk_width * mblk_width) -
                                                (pipe->plane_res.scl_data.viewport.x / mblk_width * mblk_width);
 
                /* full_vp_height_blk_aligned = FLOOR(vp_y_start + full_vp_height + blk_height - 1, blk_height) -
@@ -252,7 +252,7 @@ static uint32_t dcn32_calculate_cab_allocation(struct dc *dc, struct dc_state *c
                 * mall_alloc_height_blk_aligned_l/c = full_vp_height_blk_aligned_l/c
                 */
                mall_alloc_height_blk_aligned = ((pipe->plane_res.scl_data.viewport.y +
-                               pipe->plane_res.scl_data.viewport.height + mblk_height - 1) / mblk_height * mblk_height) +
+                               pipe->plane_res.scl_data.viewport.height + mblk_height - 1) / mblk_height * mblk_height) -
                                                (pipe->plane_res.scl_data.viewport.y / mblk_height * mblk_height);
 
                num_mblks = ((mall_alloc_width_blk_aligned + mblk_width - 1) / mblk_width) *