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

[Description]
We only want to commit the SubVP config to DMCUB
after the main and phantom pipe programming has
completed. Commiting the state early can cause
issues such as P-State being allowed by the HW
early which causes the SubVP state machine to
go into a bad state

Reviewed-by: Jun Lei <jun....@amd.com>
Acked-by: Brian Chang <brian.ch...@amd.com>
Signed-off-by: Alvin Lee <alvin.l...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index ced09f875e58..95daee11a445 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -3333,10 +3333,6 @@ static void commit_planes_for_stream(struct dc *dc,
                if (dc->hwss.program_front_end_for_ctx)
                        dc->hwss.program_front_end_for_ctx(dc, context);
 
-               if (update_type != UPDATE_TYPE_FAST)
-                       if (dc->hwss.commit_subvp_config)
-                               dc->hwss.commit_subvp_config(dc, context);
-
                if (should_lock_all_pipes && 
dc->hwss.interdependent_update_lock) {
                        dc->hwss.interdependent_update_lock(dc, context, false);
                } else {
@@ -3344,6 +3340,10 @@ static void commit_planes_for_stream(struct dc *dc,
                }
                dc->hwss.post_unlock_program_front_end(dc, context);
 
+               if (update_type != UPDATE_TYPE_FAST)
+                       if (dc->hwss.commit_subvp_config)
+                               dc->hwss.commit_subvp_config(dc, context);
+
                /* Since phantom pipe programming is moved to 
post_unlock_program_front_end,
                 * move the SubVP lock to after the phantom pipes have been 
setup
                 */
@@ -3477,10 +3477,6 @@ static void commit_planes_for_stream(struct dc *dc,
 
        }
 
-       if (update_type != UPDATE_TYPE_FAST)
-               if (dc->hwss.commit_subvp_config)
-                       dc->hwss.commit_subvp_config(dc, context);
-
        if (should_lock_all_pipes && dc->hwss.interdependent_update_lock) {
                dc->hwss.interdependent_update_lock(dc, context, false);
        } else {
@@ -3517,6 +3513,9 @@ static void commit_planes_for_stream(struct dc *dc,
 
        if (update_type != UPDATE_TYPE_FAST)
                dc->hwss.post_unlock_program_front_end(dc, context);
+               if (update_type != UPDATE_TYPE_FAST)
+                       if (dc->hwss.commit_subvp_config)
+                               dc->hwss.commit_subvp_config(dc, context);
 
        /* Since phantom pipe programming is moved to 
post_unlock_program_front_end,
         * move the SubVP lock to after the phantom pipes have been setup
-- 
2.25.1

Reply via email to