Commit 4451a255 authored by Shirish S's avatar Shirish S Committed by Alex Deucher
Browse files

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: default avatarShirish S <shirish.s@amd.com>
Reviewed-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1bb47154
Loading
Loading
Loading
Loading
+6 −13
Original line number Diff line number Diff line
@@ -891,22 +891,15 @@ 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)
			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)
		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;

		/* irrespective of plane format, stream should be RGB encoded */
		if (context->streams[i]->timing.pixel_encoding != PIXEL_ENCODING_RGB)
			return false;
	}
	}

	return true;
}