drm/amd/display: Compare v_front_porch when checking if streams are synchronizable
authorDavid Galiffi <David.Galiffi@amd.com>
Thu, 11 Jun 2020 21:36:14 +0000 (17:36 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Jul 2020 05:59:26 +0000 (01:59 -0400)
[Why]
If the front porch of the two timings differ, then there may not be
enough time while both streams are in vertical blank to perform a memory
clock change. This can hang the system.

[How]
Check the each streams timing.v_front_porch when determining if the two
streams are synchronizable.

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index 3d0003c..1000dc6 100644 (file)
@@ -399,6 +399,10 @@ bool resource_are_streams_timing_synchronizable(
                                != stream2->timing.v_addressable)
                return false;
 
+       if (stream1->timing.v_front_porch
+                               != stream2->timing.v_front_porch)
+               return false;
+
        if (stream1->timing.pix_clk_100hz
                                != stream2->timing.pix_clk_100hz)
                return false;