Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/display: Update stream mask

[Why]
Whenever stream changes because of new
pipe arrangements such as ODM. The new
stream mask is not reflected in DMCUB.

The mismatch in stream mask is blocking ips
entry in some scenarios.

[How]
Whenever stream arrangement changes,
update stream mask and notify DMCUB.

Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Duncan Ma <duncan.ma@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Duncan Ma and committed by
Alex Deucher
72f7d6d3 6fe01ed4

+7
+7
drivers/gpu/drm/amd/display/dc/core/dc.c
··· 3585 3585 bool should_lock_all_pipes = (update_type != UPDATE_TYPE_FAST); 3586 3586 bool subvp_prev_use = false; 3587 3587 bool subvp_curr_use = false; 3588 + uint8_t current_stream_mask = 0; 3588 3589 3589 3590 // Once we apply the new subvp context to hardware it won't be in the 3590 3591 // dc->current_state anymore, so we have to cache it before we apply ··· 3934 3933 3935 3934 if (pipe_ctx->stream_res.tg->funcs->program_manual_trigger) 3936 3935 pipe_ctx->stream_res.tg->funcs->program_manual_trigger(pipe_ctx->stream_res.tg); 3936 + } 3937 + 3938 + current_stream_mask = get_stream_mask(dc, context); 3939 + if (current_stream_mask != context->stream_mask) { 3940 + context->stream_mask = current_stream_mask; 3941 + dc_dmub_srv_notify_stream_mask(dc->ctx->dmub_srv, current_stream_mask); 3937 3942 } 3938 3943 } 3939 3944