From: Alvin Lee <[email protected]>

[Description]
- Similar to FPO, SubVP should also force cursor P-State
  allow instead of relying on natural assertion
- Implement code path to force and unforce cursor P-State
  allow for SubVP

Reviewed-by: Samson Tam <[email protected]>
Acked-by: Hersen Wu <[email protected]>
Signed-off-by: Alvin Lee <[email protected]>
---
 .../drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 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 1b9f21fd4f17..6a65af8c36b9 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
@@ -615,12 +615,6 @@ void dcn32_update_force_pstate(struct dc *dc, struct 
dc_state *context)
                    pipe->stream->fpo_in_use)) {
                        if (hubp && 
hubp->funcs->hubp_update_force_pstate_disallow)
                                
hubp->funcs->hubp_update_force_pstate_disallow(hubp, false);
-               }
-
-               /* Today only FPO uses cursor P-State force. Only clear cursor 
P-State force
-                * if it's not FPO.
-                */
-               if (!pipe->stream || !pipe->stream->fpo_in_use) {
                        if (hubp && 
hubp->funcs->hubp_update_force_cursor_pstate_disallow)
                                
hubp->funcs->hubp_update_force_cursor_pstate_disallow(hubp, false);
                }
@@ -632,17 +626,10 @@ void dcn32_update_force_pstate(struct dc *dc, struct 
dc_state *context)
                struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];
                struct hubp *hubp = pipe->plane_res.hubp;
 
-               if (pipe->stream && pipe->plane_state && 
pipe->stream->mall_stream_config.type == SUBVP_MAIN) {
+               if (pipe->stream && (pipe->stream->mall_stream_config.type == 
SUBVP_MAIN ||
+                               pipe->stream->fpo_in_use)) {
                        if (hubp && 
hubp->funcs->hubp_update_force_pstate_disallow)
                                
hubp->funcs->hubp_update_force_pstate_disallow(hubp, true);
-               }
-
-               if (pipe->stream && pipe->stream->fpo_in_use) {
-                       if (hubp && 
hubp->funcs->hubp_update_force_pstate_disallow)
-                               
hubp->funcs->hubp_update_force_pstate_disallow(hubp, true);
-                       /* For now only force cursor p-state disallow for FPO
-                        * Needs to be added for subvp once FW side gets updated
-                        */
                        if (hubp && 
hubp->funcs->hubp_update_force_cursor_pstate_disallow)
                                
hubp->funcs->hubp_update_force_cursor_pstate_disallow(hubp, true);
                }
-- 
2.25.1

Reply via email to