summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2020-02-03 02:23:35 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2020-02-03 02:23:35 -0800
commitc0018ab698f7a12456290a6b48b4b0b0c2c4a9cc (patch)
tree0f48d2e181ab3355b072d2f720fd9a41763a2159
parentf5abd38580ceb193f70de534ba489969b6b5f075 (diff)
parentf9b1d6acac1a856c0225aec7abd4c407e67b9506 (diff)
downloaddisplay-drivers-c0018ab698f7a12456290a6b48b4b0b0c2c4a9cc.tar.gz
Merge "disp: msm: sde: add enc_id check before decrement avail HW resources"
-rw-r--r--msm/sde/sde_encoder.c16
-rw-r--r--msm/sde/sde_rm.c3
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,