drm/amd/display: reprogram infoframe during apply_ctx_to_hw
To ensure the infoframe gets updated during an SDR/HDR switch this change adds a new function to to check if the HDR static metadata has changed and adds it to is_timing_changed and pipe_need_reprogram checks Signed-off-by: Julian Parkin <jparkin@amd.com> Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7ab3fdde04
commit
6b62218123
|
@ -1310,6 +1310,19 @@ bool dc_add_all_planes_for_stream(
|
|||
}
|
||||
|
||||
|
||||
static bool is_hdr_static_meta_changed(struct dc_stream_state *cur_stream,
|
||||
struct dc_stream_state *new_stream)
|
||||
{
|
||||
if (cur_stream == NULL)
|
||||
return true;
|
||||
|
||||
if (memcmp(&cur_stream->hdr_static_metadata,
|
||||
&new_stream->hdr_static_metadata,
|
||||
sizeof(struct dc_info_packet)) != 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool is_timing_changed(struct dc_stream_state *cur_stream,
|
||||
struct dc_stream_state *new_stream)
|
||||
|
@ -1345,6 +1358,9 @@ static bool are_stream_backends_same(
|
|||
if (is_timing_changed(stream_a, stream_b))
|
||||
return false;
|
||||
|
||||
if (is_hdr_static_meta_changed(stream_a, stream_b))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -2548,6 +2564,8 @@ bool pipe_need_reprogram(
|
|||
if (is_timing_changed(pipe_ctx_old->stream, pipe_ctx->stream))
|
||||
return true;
|
||||
|
||||
if (is_hdr_static_meta_changed(pipe_ctx_old->stream, pipe_ctx->stream))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue