Переглянути джерело

Merge "disp: msm: sde: add enc_id check before decrement avail HW resources"

qctecmdr 5 роки тому
батько
коміт
2e6b26c260
2 змінених файлів з 10 додано та 9 видалено
  1. 8 8
      msm/sde/sde_encoder.c
  2. 2 1
      msm/sde/sde_rm.c

+ 8 - 8
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;

+ 2 - 1
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,