- Add checks for Cursor update and dirty rects (sending updates to dmub)
- Add checks for dc_notify_vsync, and fbc and subvp

Signed-off-by: Bhawanpreet Lakha <bhawanpreet.la...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc.c                    | 6 ++++++
 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c                | 3 +++
 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 6 ++++++
 3 files changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index dd3a9d06c6e2..dccb49e27f35 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -3367,6 +3367,9 @@ static bool dc_dmub_should_send_dirty_rect_cmd(struct dc 
*dc, struct dc_stream_s
                        && stream->ctx->dce_version >= DCN_VERSION_3_1)
                return true;
 
+        if (stream->link->replay_settings.config.replay_supported)
+                return true;
+
        return false;
 }
 
@@ -5116,6 +5119,9 @@ void dc_notify_vsync_int_state(struct dc *dc, struct 
dc_stream_state *stream, bo
        if (link->psr_settings.psr_feature_enabled)
                return;
 
+        if (link->replay_settings.replay_feature_enabled)
+                return;
+
        /*find primary pipe associated with stream*/
        for (i = 0; i < MAX_PIPES; i++) {
                pipe = &dc->current_state->res_ctx.pipe_ctx[i];
diff --git a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c 
b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
index c52c40b16387..706c49e015f6 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
+++ b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
@@ -894,6 +894,9 @@ static bool dc_dmub_should_update_cursor_data(struct 
pipe_ctx *pipe_ctx)
                pipe_ctx->stream->ctx->dce_version >= DCN_VERSION_3_1)
                return true;
 
+       if (pipe_ctx->stream->link->replay_settings.config.replay_supported)
+                return true;
+
        return false;
 }
 
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c 
b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
index 6c9ca43d1040..16b53a4c5a42 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
@@ -1585,6 +1585,8 @@ static enum dc_status apply_single_controller_ctx_to_hw(
         */
        if (pipe_ctx->stream->mall_stream_config.type != SUBVP_PHANTOM) {
                pipe_ctx->stream->link->psr_settings.psr_feature_enabled = 
false;
+               printk("######  %s %d\n",__func__,__LINE__);
+               pipe_ctx->stream->link->replay_settings.replay_feature_enabled 
= false;
        }
        return DC_OK;
 }
@@ -2013,6 +2015,10 @@ static bool should_enable_fbc(struct dc *dc,
        if (pipe_ctx->stream->link->psr_settings.psr_feature_enabled)
                return false;
 
+       /* Replay should not be enabled */
+        if (pipe_ctx->stream->link->replay_settings.replay_feature_enabled)
+                return false;
+
        /* Nothing to compress */
        if (!pipe_ctx->plane_state)
                return false;
-- 
2.25.1

Reply via email to