drm/amd/display: fix multi-display on CZ
authorRoman Li <Roman.Li@amd.com>
Mon, 11 Sep 2017 20:28:21 +0000 (16:28 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 21 Oct 2017 20:40:39 +0000 (16:40 -0400)
- fixed wrong index in dce110_validate_surface_sets()
- formatted for better readability

Signed-off-by: Roman Li <Roman.Li@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
igned-off-by: Alex Deucher <alexander.deucher@amd.com>

drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c

index 28e768de744ce2df3d81dad3bea4022e43a275b3..8e4ec61d59a4b46cceb02e94e36059211d469e59 100644 (file)
@@ -849,7 +849,7 @@ static bool dce110_validate_bandwidth(
 static bool dce110_validate_surface_sets(
                struct dc_state *context)
 {
-       int i;
+       int i, j;
 
        for (i = 0; i < context->stream_count; i++) {
                if (context->stream_status[i].plane_count == 0)
@@ -858,14 +858,27 @@ static bool dce110_validate_surface_sets(
                if (context->stream_status[i].plane_count > 2)
                        return false;
 
-               if ((context->stream_status[i].plane_states[i]->format >= SURFACE_PIXEL_FORMAT_VIDEO_BEGIN) &&
-                   (context->stream_status[i].plane_states[i]->src_rect.width > 1920 ||
-                    context->stream_status[i].plane_states[i]->src_rect.height > 1080))
-                       return false;
+               for (j = 0; j < context->stream_status[i].plane_count; j++) {
+                       struct dc_plane_state *plane =
+                               context->stream_status[i].plane_states[j];
 
-               /* irrespective of plane format, stream should be RGB encoded */
-               if (context->streams[i]->timing.pixel_encoding != PIXEL_ENCODING_RGB)
-                       return false;
+                       /* underlay validation */
+                       if (plane->format >= SURFACE_PIXEL_FORMAT_VIDEO_BEGIN) {
+
+                               if ((plane->src_rect.width > 1920 ||
+                                       plane->src_rect.height > 1080))
+                                       return false;
+
+                               /* irrespective of plane format,
+                                * stream should be RGB encoded
+                                */
+                               if (context->streams[i]->timing.pixel_encoding
+                                               != PIXEL_ENCODING_RGB)
+                                       return false;
+
+                       }
+
+               }
        }
 
        return true;