mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
drm/amd/display: Indicate dsc updates explicitly
[Why] DSC updates only set type to FULL UPDATE, but doesn't flag the change [How] Add DSC flag update flag Signed-off-by: Anthony Koo <Anthony.Koo@amd.com> Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
bbf5f6c3f8
commit
acdac228c4
@ -1738,14 +1738,15 @@ static enum surface_update_type check_update_surfaces_for_stream(
|
||||
|
||||
if (stream_update->wb_update)
|
||||
su_flags->bits.wb_update = 1;
|
||||
|
||||
if (stream_update->dsc_config)
|
||||
su_flags->bits.dsc_changed = 1;
|
||||
|
||||
if (su_flags->raw != 0)
|
||||
overall_type = UPDATE_TYPE_FULL;
|
||||
|
||||
if (stream_update->output_csc_transform || stream_update->output_color_space)
|
||||
su_flags->bits.out_csc = 1;
|
||||
|
||||
if (stream_update->dsc_config)
|
||||
overall_type = UPDATE_TYPE_FULL;
|
||||
}
|
||||
|
||||
for (i = 0 ; i < surface_count; i++) {
|
||||
@ -1780,8 +1781,11 @@ enum surface_update_type dc_check_update_surfaces_for_stream(
|
||||
|
||||
type = check_update_surfaces_for_stream(dc, updates, surface_count, stream_update, stream_status);
|
||||
if (type == UPDATE_TYPE_FULL) {
|
||||
if (stream_update)
|
||||
if (stream_update) {
|
||||
uint32_t dsc_changed = stream_update->stream->update_flags.bits.dsc_changed;
|
||||
stream_update->stream->update_flags.raw = 0xFFFFFFFF;
|
||||
stream_update->stream->update_flags.bits.dsc_changed = dsc_changed;
|
||||
}
|
||||
for (i = 0; i < surface_count; i++)
|
||||
updates[i].surface->update_flags.raw = 0xFFFFFFFF;
|
||||
}
|
||||
@ -2097,14 +2101,15 @@ static void commit_planes_do_stream_update(struct dc *dc,
|
||||
}
|
||||
}
|
||||
|
||||
/* Full fe update*/
|
||||
if (update_type == UPDATE_TYPE_FAST)
|
||||
continue;
|
||||
|
||||
if (stream_update->dsc_config && dc->hwss.pipe_control_lock_global) {
|
||||
dc->hwss.pipe_control_lock_global(dc, pipe_ctx, true);
|
||||
dp_update_dsc_config(pipe_ctx);
|
||||
dc->hwss.pipe_control_lock_global(dc, pipe_ctx, false);
|
||||
}
|
||||
/* Full fe update*/
|
||||
if (update_type == UPDATE_TYPE_FAST)
|
||||
continue;
|
||||
|
||||
if (stream_update->dpms_off) {
|
||||
dc->hwss.pipe_control_lock(dc, pipe_ctx, true);
|
||||
|
@ -118,6 +118,7 @@ union stream_update_flags {
|
||||
uint32_t dpms_off:1;
|
||||
uint32_t gamut_remap:1;
|
||||
uint32_t wb_update:1;
|
||||
uint32_t dsc_changed : 1;
|
||||
} bits;
|
||||
|
||||
uint32_t raw;
|
||||
|
Loading…
Reference in New Issue
Block a user