drm/amd/display: Add check for validating unsupported ODM plus MPO case
authorJaehyun Chung <jaehyum.chung@amd.com>
Thu, 22 Jul 2021 18:15:11 +0000 (14:15 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 6 Aug 2021 01:17:58 +0000 (21:17 -0400)
[Why]
We do not currently support ODM plus MPO on only one side of the
screen. This unsupported case causes validation calculations to
divide by zero due to invalid viewport values.

[How]
Add stopgap for the validation of ODM plus MPO on one side of
screen case.

Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Jaehyun Chung <jaehyum.chung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index 7f12ca9..a60396d 100644 (file)
@@ -1051,6 +1051,11 @@ bool resource_build_scaling_params(struct pipe_ctx *pipe_ctx)
        /* depends on scaling ratios and recout, does not calculate offset yet */
        calculate_viewport_size(pipe_ctx);
 
+       /* Stopgap for validation of ODM + MPO on one side of screen case */
+       if (pipe_ctx->plane_res.scl_data.viewport.height < 1 ||
+                       pipe_ctx->plane_res.scl_data.viewport.width < 1)
+               return false;
+
        /*
         * LB calculations depend on vp size, h/v_active and scaling ratios
         * Setting line buffer pixel depth to 24bpp yields banding