From: Muhammad Ahmed <ahmed.ah...@amd.com>

[why]
Driver crashes when pipe idx not set properly

[how]
Add code to skip the pipe that idx not set properly

Reviewed-by: Charlene Liu <charlene....@amd.com>
Acked-by: Tom Chung <chiahsuan.ch...@amd.com>
Signed-off-by: Muhammad Ahmed <ahmed.ah...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c 
b/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c
index ac2676bb9fcb..bedf1cd390df 100644
--- a/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c
+++ b/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c
@@ -327,6 +327,8 @@ void dml2_calculate_rq_and_dlg_params(const struct dc *dc, 
struct dc_state *cont
                        dml_pipe_idx = 
dml2_helper_find_dml_pipe_idx_by_stream_id(in_ctx, 
context->res_ctx.pipe_ctx[dc_pipe_ctx_index].stream->stream_id);
                }
 
+               if (dml_pipe_idx == 0xFFFFFFFF)
+                       continue;
                
ASSERT(in_ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_stream_id_valid[dml_pipe_idx]);
                
ASSERT(in_ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_stream_id[dml_pipe_idx]
 == context->res_ctx.pipe_ctx[dc_pipe_ctx_index].stream->stream_id);
 
@@ -474,6 +476,9 @@ bool dml2_verify_det_buffer_configuration(struct 
dml2_context *in_ctx, struct dc
                        dml_pipe_idx = find_dml_pipe_idx_by_plane_id(in_ctx, 
plane_id);
                else
                        dml_pipe_idx = 
dml2_helper_find_dml_pipe_idx_by_stream_id(in_ctx, 
display_state->res_ctx.pipe_ctx[i].stream->stream_id);
+
+               if (dml_pipe_idx == 0xFFFFFFFF)
+                       continue;
                total_det_allocated += 
dml_get_det_buffer_size_kbytes(&in_ctx->v20.dml_core_ctx, dml_pipe_idx);
                if (total_det_allocated > max_det_size) {
                        need_recalculation = true;
-- 
2.34.1

Reply via email to