Commit a783e7b5 authored by Leon Elazar's avatar Leon Elazar Committed by Alex Deucher
Browse files

drm/amd/display: adding new dc_update_surfaces_and_stream

parent ab587d4a
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -1268,6 +1268,27 @@ enum surface_update_type dc_check_update_surfaces_for_stream(
	return overall_type;
}

void dc_update_surfaces_and_stream(struct dc *dc,
		struct dc_surface_update *surface_updates, int surface_count,
		const struct dc_stream *dc_stream,
		struct dc_stream_update *stream_update)
{
	const struct dc_stream_status *stream_status;

	stream_status = dc_stream_get_status(dc_stream);
	ASSERT(stream_status);
	if (!stream_status)
		return; /* Cannot update stream that is not committed */

	if (stream_update) {
		dc->stream_funcs.stream_update_scaling(dc, dc_stream,
				&stream_update->src, &stream_update->dst);
	}

	dc_update_surfaces_for_stream(dc, surface_updates,
			surface_count, dc_stream);
}

enum surface_update_type update_surface_trace_level = UPDATE_TYPE_FULL;

void dc_update_surfaces_for_stream(struct dc *dc,
+29 −0
Original line number Diff line number Diff line
@@ -433,6 +433,35 @@ struct dc_stream {
	/* TODO: CEA VIC */
};

struct dc_stream_update {

	struct rect src;

	struct rect dst;

};


/*
 * Setup stream attributes if no stream updates are provided
 * there will be no impact on the stream parameters
 *
 * Set up surface attributes and associate to a stream
 * The surfaces parameter is an absolute set of all surface active for the stream.
 * If no surfaces are provided, the stream will be blanked; no memory read.
 * Any flip related attribute changes must be done through this interface.
 *
 * After this call:
 *   Surfaces attributes are programmed and configured to be composed into stream.
 *   This does not trigger a flip.  No surface address is programmed.
 *
 */

void dc_update_surfaces_and_stream(struct dc *dc,
		struct dc_surface_update *surface_updates, int surface_count,
		const struct dc_stream *dc_stream,
		struct dc_stream_update *stream_update);

/*
 * Log the current stream state.
 */