Skip to content

Commit e61aebe

Browse files
Dillon Varonealexdeucher
authored andcommitted
drm/amd/display: Disable uclk pstate for subvp pipes
[Description] When subvp is in use, main pipes should block unintended natural uclk pstate changes to prevent disruption to the state machine. Reviewed-by: Alvin Lee <[email protected]> Acked-by: Stylon Wang <[email protected]> Signed-off-by: Dillon Varone <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 54e9ea3 commit e61aebe

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -703,11 +703,7 @@ void dcn32_subvp_update_force_pstate(struct dc *dc, struct dc_state *context)
703703
for (i = 0; i < dc->res_pool->pipe_count; i++) {
704704
struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];
705705

706-
// For SubVP + DRR, also force disallow on the DRR pipe
707-
// (We will force allow in the DMUB sequence -- some DRR timings by default won't allow P-State so we have
708-
// to force once the vblank is stretched).
709-
if (pipe->stream && pipe->plane_state && (pipe->stream->mall_stream_config.type == SUBVP_MAIN ||
710-
(pipe->stream->mall_stream_config.type == SUBVP_NONE && pipe->stream->ignore_msa_timing_param))) {
706+
if (pipe->stream && pipe->plane_state && (pipe->stream->mall_stream_config.type == SUBVP_MAIN)) {
711707
struct hubp *hubp = pipe->plane_res.hubp;
712708

713709
if (hubp && hubp->funcs->hubp_update_force_pstate_disallow)
@@ -785,6 +781,10 @@ void dcn32_program_mall_pipe_config(struct dc *dc, struct dc_state *context)
785781
if (hws && hws->funcs.update_mall_sel)
786782
hws->funcs.update_mall_sel(dc, context);
787783

784+
//update subvp force pstate
785+
if (hws && hws->funcs.subvp_update_force_pstate)
786+
dc->hwseq->funcs.subvp_update_force_pstate(dc, context);
787+
788788
// Program FORCE_ONE_ROW_FOR_FRAME and CURSOR_REQ_MODE for main subvp pipes
789789
for (i = 0; i < dc->res_pool->pipe_count; i++) {
790790
struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];

0 commit comments

Comments
 (0)