drm/amd/display: add null check for invalid opps
authorSamson Tam <samson.tam@amd.com>
Fri, 6 Oct 2023 21:36:16 +0000 (17:36 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 26 Oct 2023 23:00:31 +0000 (19:00 -0400)
[Why]
In cases where number of pipes available is less
 than num_opp, there will opp instances that are
 null

[How]
Add null check to skip over these opp instances

Fixes: 40de8403b998 ("drm/amd/display: Update OPP counter from new interface")
Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Acked-by: Roman Li <roman.li@amd.com>
Signed-off-by: Samson Tam <samson.tam@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c

index d13904548505bdc81cf8a89105a6a3ae20919409..74c21d98b4de37541c848ab0c015f69891a0b820 100644 (file)
@@ -3575,7 +3575,8 @@ static void wait_for_outstanding_hw_updates(struct dc *dc, const struct dc_state
                mpcc_inst = hubp->inst;
                // MPCC inst is equal to pipe index in practice
                for (opp_inst = 0; opp_inst < opp_count; opp_inst++) {
-                       if (dc->res_pool->opps[opp_inst]->mpcc_disconnect_pending[mpcc_inst]) {
+                       if ((dc->res_pool->opps[opp_inst] != NULL) &&
+                               (dc->res_pool->opps[opp_inst]->mpcc_disconnect_pending[mpcc_inst])) {
                                dc->res_pool->mpc->funcs->wait_for_idle(dc->res_pool->mpc, mpcc_inst);
                                dc->res_pool->opps[opp_inst]->mpcc_disconnect_pending[mpcc_inst] = false;
                                break;