Skip to content

Commit

Permalink
drm/amd/display: Add logging resource checks
Browse files Browse the repository at this point in the history
[ Upstream commit 8a51cc0 ]

[Why]
When mapping resources, resources could be unavailable.

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Sung joon Kim <sungjoon.kim@amd.com>
Acked-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Charlene Liu <charlene.liu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Charlene Liu authored and gregkh committed Feb 1, 2024
1 parent 7f0b58f commit eeb8ae7
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
4 changes: 3 additions & 1 deletion drivers/gpu/drm/amd/display/dc/core/dc.c
Expand Up @@ -3626,7 +3626,7 @@ static void commit_planes_for_stream(struct dc *dc,
top_pipe_to_program = resource_get_otg_master_for_stream(
&context->res_ctx,
stream);

ASSERT(top_pipe_to_program != NULL);
for (i = 0; i < dc->res_pool->pipe_count; i++) {
struct pipe_ctx *old_pipe = &dc->current_state->res_ctx.pipe_ctx[i];

Expand Down Expand Up @@ -4457,6 +4457,8 @@ static bool should_commit_minimal_transition_for_windowed_mpo_odm(struct dc *dc,

cur_pipe = resource_get_otg_master_for_stream(&dc->current_state->res_ctx, stream);
new_pipe = resource_get_otg_master_for_stream(&context->res_ctx, stream);
if (!cur_pipe || !new_pipe)
return false;
cur_is_odm_in_use = resource_get_odm_slice_count(cur_pipe) > 1;
new_is_odm_in_use = resource_get_odm_slice_count(new_pipe) > 1;
if (cur_is_odm_in_use == new_is_odm_in_use)
Expand Down
7 changes: 6 additions & 1 deletion drivers/gpu/drm/amd/display/dc/core/dc_resource.c
Expand Up @@ -2170,6 +2170,10 @@ void resource_log_pipe_topology_update(struct dc *dc, struct dc_state *state)
for (stream_idx = 0; stream_idx < state->stream_count; stream_idx++) {
otg_master = resource_get_otg_master_for_stream(
&state->res_ctx, state->streams[stream_idx]);
if (!otg_master || otg_master->stream_res.tg == NULL) {
DC_LOG_DC("topology update: otg_master NULL stream_idx %d!\n", stream_idx);
return;
}
slice_count = resource_get_opp_heads_for_otg_master(otg_master,
&state->res_ctx, opp_heads);
for (slice_idx = 0; slice_idx < slice_count; slice_idx++) {
Expand Down Expand Up @@ -2990,7 +2994,8 @@ bool dc_add_plane_to_context(

otg_master_pipe = resource_get_otg_master_for_stream(
&context->res_ctx, stream);
added = resource_append_dpp_pipes_for_plane_composition(context,
if (otg_master_pipe)
added = resource_append_dpp_pipes_for_plane_composition(context,
dc->current_state, pool, otg_master_pipe, plane_state);

if (added) {
Expand Down

0 comments on commit eeb8ae7

Please sign in to comment.