]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/amd/display: DP is hotplugged, HDMI with 4:2:0 corruption
authorCharlene Liu <charlene.liu@amd.com>
Fri, 17 Mar 2017 17:09:09 +0000 (13:09 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 26 Sep 2017 21:20:43 +0000 (17:20 -0400)
Signed-off-by: Charlene Liu <charlene.liu@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index 9f624e84f59b832bd71c249709236440cfa5140a..875d1a63fceab645b0554f2a0f7599cce4759648 100644 (file)
@@ -297,8 +297,8 @@ bool resource_are_streams_timing_synchronizable(
                return false;
 
        if (stream1->phy_pix_clk != stream2->phy_pix_clk
-                       && !dc_is_dp_signal(stream1->signal)
-                       && !dc_is_dp_signal(stream2->signal))
+                       && (!dc_is_dp_signal(stream1->signal)
+                       || !dc_is_dp_signal(stream2->signal)))
                return false;
 
        return true;
@@ -1063,6 +1063,8 @@ static bool are_stream_backends_same(
        if (stream_a == NULL || stream_b == NULL)
                return false;
 
+       if (stream_a->public.timing.pixel_encoding != stream_b->public.timing.pixel_encoding)
+               return false;
        if (is_timing_changed(stream_a, stream_b))
                return false;
 
@@ -1072,8 +1074,8 @@ static bool are_stream_backends_same(
 bool is_stream_unchanged(
        const struct core_stream *old_stream, const struct core_stream *stream)
 {
-       if (old_stream == stream)
-               return true;
+       if (old_stream != stream)
+               return false;
 
        if (!are_stream_backends_same(old_stream, stream))
                return false;
@@ -1357,6 +1359,7 @@ enum dc_status resource_map_pool_resources(
                        continue;
                }
        }
+
                /* mark resources used for stream that is already active */
                for (j = 0; j < MAX_PIPES; j++) {
                        struct pipe_ctx *pipe_ctx =