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

Add changes to commit and decrement only those
hardware resources which are required for the modeset.

Timeline of Commit C1 with CWB modeset:
---> Atomic_check
	Primary encoder has allocated required HW resources.
 	CWB encoder has allocated required HW resources.
---> Atomic_commit
	On primary encoder, connector is seamless hence
	there is no virt_modeset call.
	On CWB encoder, there is virt_mode_set call
	and during commit HW blocks there is unconditional
	decrement for all the HW blocks with rsvp_nxt.

This change ensures hardware blocks are available during
dp display mode validations.

Change-Id: Ifd9439cfc96e727c3093af5f47802c8367775cd7
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
Cette révision appartient à :
Jayaprakash
2020-01-10 20:22:40 +05:30
révisé par Gerrit - the friendly Code Review server
Parent 9beffdfdc6
révision f7d08feb38
2 fichiers modifiés avec 10 ajouts et 9 suppressions

Voir le fichier

@@ -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;