drm/amd/display: adding new dc_update_surfaces_and_stream
Signed-off-by: Leon Elazar <leon.elazar@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
ab587d4a65
commit
a783e7b518
@ -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,
|
||||
|
@ -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.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user