From: Shirish S <[email protected]>

For MPO to work with per surface rendering and flipping,
the previous logic of restricting plane[1] only as underlay
needs to be removed.
validate_surface_sets() now checks only the width and height
bounds in case of underlay rather than checking format.

Without this patch one cannot set underlay only.

Signed-off-by: Shirish S <[email protected]>
Reviewed-by: Harry Wentland <[email protected]>
---
 .../gpu/drm/amd/display/dc/dce110/dce110_resource.c   | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c 
b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
index 41bfddf9574e..25eda52c32ef 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
@@ -891,21 +891,14 @@ static bool dce110_validate_surface_sets(
                if (context->stream_status[i].plane_count > 2)
                        return false;
 
-               if (context->stream_status[i].plane_states[0]->format
-                               >= SURFACE_PIXEL_FORMAT_VIDEO_BEGIN)
+               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;
 
-               if (context->stream_status[i].plane_count == 2) {
-                       if (context->stream_status[i].plane_states[1]->format
-                                       < SURFACE_PIXEL_FORMAT_VIDEO_BEGIN)
-                               return false;
-                       if 
(context->stream_status[i].plane_states[1]->src_rect.width > 1920
-                                       || 
context->stream_status[i].plane_states[1]->src_rect.height > 1080)
-                               return false;
-
-                       if (context->streams[i]->timing.pixel_encoding != 
PIXEL_ENCODING_RGB)
-                               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;
-- 
2.11.0

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to