From: Shirish S Date: Mon, 21 Aug 2017 08:32:17 +0000 (+0530) Subject: drm/amd/display: dce110: fix plane validation X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4451a2551dcac9ea8c90829e0fcc798b834deb6b;p=linux.git drm/amd/display: dce110: fix plane validation 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 Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher --- 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 41bfddf9574e5..25eda52c32ef7 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;