diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index e350163fce..39b17cf252 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -5113,14 +5113,6 @@ int sde_encoder_update_caps_for_cont_splash(struct drm_encoder *encoder, return ret; } - ret = sde_rm_reserve(&sde_kms->rm, encoder, encoder->crtc->state, - conn->state, false); - if (ret) { - SDE_ERROR_ENC(sde_enc, - "failed to reserve hw resources, %d\n", ret); - return ret; - } - if (sde_conn->encoder) { conn->state->best_encoder = sde_conn->encoder; SDE_DEBUG_ENC(sde_enc, @@ -5131,6 +5123,14 @@ int sde_encoder_update_caps_for_cont_splash(struct drm_encoder *encoder, conn->base.id); } + ret = sde_rm_reserve(&sde_kms->rm, encoder, encoder->crtc->state, + conn->state, false); + if (ret) { + SDE_ERROR_ENC(sde_enc, + "failed to reserve hw resources, %d\n", ret); + return ret; + } + SDE_DEBUG_ENC(sde_enc, "connector topology = %llu\n", sde_connector_get_topology_name(conn)); drm_mode = &encoder->crtc->state->adjusted_mode; diff --git a/msm/sde/sde_rm.c b/msm/sde/sde_rm.c index 00bb0989cf..e629be3947 100644 --- a/msm/sde/sde_rm.c +++ b/msm/sde/sde_rm.c @@ -2166,7 +2166,8 @@ static int _sde_rm_commit_rsvp( /* Swap next rsvp to be the active */ for (type = 0; type < SDE_HW_BLK_MAX; type++) { list_for_each_entry(blk, &rm->hw_blks[type], list) { - if (blk->rsvp_nxt) { + if (blk->rsvp_nxt && conn_state->best_encoder->base.id + == blk->rsvp_nxt->enc_id) { blk->rsvp = blk->rsvp_nxt; blk->rsvp_nxt = NULL; _sde_rm_dec_resource_info(rm,