diff options
author | qctecmdr <qctecmdr@localhost> | 2020-02-03 02:23:35 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2020-02-03 02:23:35 -0800 |
commit | c0018ab698f7a12456290a6b48b4b0b0c2c4a9cc (patch) | |
tree | 0f48d2e181ab3355b072d2f720fd9a41763a2159 | |
parent | f5abd38580ceb193f70de534ba489969b6b5f075 (diff) | |
parent | f9b1d6acac1a856c0225aec7abd4c407e67b9506 (diff) | |
download | display-drivers-c0018ab698f7a12456290a6b48b4b0b0c2c4a9cc.tar.gz |
Merge "disp: msm: sde: add enc_id check before decrement avail HW resources"
-rw-r--r-- | msm/sde/sde_encoder.c | 16 | ||||
-rw-r--r-- | msm/sde/sde_rm.c | 3 |
2 files changed, 10 insertions, 9 deletions
diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index dd3af388..a6a13a22 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -5950,14 +5950,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, @@ -5968,6 +5960,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 5df741b0..76103ab4 100644 --- a/msm/sde/sde_rm.c +++ b/msm/sde/sde_rm.c @@ -2024,7 +2024,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, |