From: Alvin Lee <alvin.l...@amd.com>

This reverts commit 2147d93a90cc ("drm/amd/display: Only program P-State force 
if pipe config changed")
Which causes regression.

Reviewed-by: Samson Tam <samson....@amd.com>
Acked-by: Tom Chung <chiahsuan.ch...@amd.com>
Signed-off-by: Alvin Lee <alvin.l...@amd.com>
---
 .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c    | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c 
b/drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
index 901e3b531a12..ba4b2786f440 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
@@ -614,26 +614,10 @@ void dcn32_update_force_pstate(struct dc *dc, struct 
dc_state *context)
         */
        for (i = 0; i < dc->res_pool->pipe_count; i++) {
                struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];
-               struct pipe_ctx *old_pipe = 
&dc->current_state->res_ctx.pipe_ctx[i];
                struct hubp *hubp = pipe->plane_res.hubp;
 
-               /* Today for MED update type we do not call update clocks. 
However, for FPO
-                * the assumption is that update clocks should be called to 
disable P-State
-                * switch before any HW programming since FPO in FW and driver 
are not
-                * synchronized. This causes an issue where on a MED update, an 
FPO P-State
-                * switch could be taking place, then driver forces P-State 
disallow in the below
-                * code and prevents FPO from completing the sequence. In this 
case we add a check
-                * to avoid re-programming (and thus re-setting) the P-State 
force register by
-                * only reprogramming if the pipe was not previously Subvp or 
FPO. The assumption
-                * is that the P-State force register should be programmed 
correctly the first
-                * time SubVP / FPO was enabled, so there's no need to update / 
reset it if the
-                * pipe config has never exited SubVP / FPO.
-                */
                if (pipe->stream && (dc_state_get_pipe_subvp_type(context, 
pipe) == SUBVP_MAIN ||
-                               pipe->stream->fpo_in_use) &&
-                               (!old_pipe->stream ||
-                               (dc_state_get_pipe_subvp_type(context, 
old_pipe) != SUBVP_MAIN &&
-                               !old_pipe->stream->fpo_in_use))) {
+                               pipe->stream->fpo_in_use)) {
                        if (hubp && 
hubp->funcs->hubp_update_force_pstate_disallow)
                                
hubp->funcs->hubp_update_force_pstate_disallow(hubp, true);
                        if (hubp && 
hubp->funcs->hubp_update_force_cursor_pstate_disallow)
-- 
2.34.1

Reply via email to