From: Lewis Huang <[email protected]>

[Why]
Driver program dpp clock calculate by pipe split config but hw config is single 
pipe.

[How]
Skip programming clock when allow seamless boot.
After porgramming pipe config, seamless boot flag will be clear.

Signed-off-by: Lewis Huang <[email protected]>
Reviewed-by: Eric Yang <[email protected]>
Acked-by: Wayne Lin <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index f4374d83662a..931fbb4d6169 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1206,14 +1206,25 @@ bool dc_link_detect(struct dc_link *link, enum 
dc_detect_reason reason)
 {
        const struct dc *dc = link->dc;
        bool ret;
+       bool can_apply_seamless_boot = false;
+       int i;
+
+       for (i = 0; i < dc->current_state->stream_count; i++) {
+               if 
(dc->current_state->streams[i]->apply_seamless_boot_optimization) {
+                       can_apply_seamless_boot = true;
+                       break;
+               }
+       }
 
        /* get out of low power state */
-       clk_mgr_exit_optimized_pwr_state(dc, dc->clk_mgr);
+       if (!can_apply_seamless_boot && reason != DETECT_REASON_BOOT)
+               clk_mgr_exit_optimized_pwr_state(dc, dc->clk_mgr);
 
        ret = dc_link_detect_helper(link, reason);
 
        /* Go back to power optimized state */
-       clk_mgr_optimize_pwr_state(dc, dc->clk_mgr);
+       if (!can_apply_seamless_boot && reason != DETECT_REASON_BOOT)
+               clk_mgr_optimize_pwr_state(dc, dc->clk_mgr);
 
        return ret;
 }
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to