Pārlūkot izejas kodu

disp: msm: sde: update back to back atomic check polling

In case of back to back atomic check only commit with modeset
handling, enable client to retry same commit and increase
timeout value used in polling for clear of rsvp-next.

Change-Id: Ied7acfbf0fe1f68282cfc36cdadf2d6aec6db40a
Signed-off-by: Prabhanjan Kandula <[email protected]>
Prabhanjan Kandula 4 gadi atpakaļ
vecāks
revīzija
7c5fde4c27
2 mainītis faili ar 8 papildinājumiem un 7 dzēšanām
  1. 3 3
      msm/sde/sde_encoder.c
  2. 5 4
      msm/sde/sde_rm.c

+ 3 - 3
msm/sde/sde_encoder.c

@@ -959,9 +959,9 @@ static int _sde_encoder_atomic_check_reserve(struct drm_encoder *drm_enc,
 		ret = sde_rm_reserve(&sde_kms->rm, drm_enc, crtc_state,
 			conn_state, true);
 		if (ret) {
-			SDE_ERROR_ENC(sde_enc,
-				"RM failed to reserve resources, rc = %d\n",
-				ret);
+			if (ret != -EAGAIN)
+				SDE_ERROR_ENC(sde_enc,
+					"RM failed to reserve resources, rc = %d\n", ret);
 			return ret;
 		}
 

+ 5 - 4
msm/sde/sde_rm.c

@@ -37,7 +37,7 @@
 #define IS_COMPATIBLE_PP_DSC(p, d) (p % 2 == d % 2)
 
 /* ~one vsync poll time for rsvp_nxt to cleared by modeset from commit thread */
-#define RM_NXT_CLEAR_POLL_TIMEOUT_US 16600
+#define RM_NXT_CLEAR_POLL_TIMEOUT_US 33000
 
 /**
  * toplogy information to be used when ctl path version does not
@@ -2570,7 +2570,7 @@ int sde_rm_reserve(
 	SDE_DEBUG("reserving hw for conn %d enc %d crtc %d test_only %d\n",
 			conn_state->connector->base.id, enc->base.id,
 			crtc_state->crtc->base.id, test_only);
-	SDE_EVT32(enc->base.id, conn_state->connector->base.id);
+	SDE_EVT32(enc->base.id, conn_state->connector->base.id, test_only);
 
 	mutex_lock(&rm->rm_lock);
 
@@ -2590,9 +2590,10 @@ int sde_rm_reserve(
 	if (test_only && rsvp_cur && rsvp_nxt) {
 		rsvp_nxt = _sde_rm_poll_get_rsvp_nxt_locked(rm, enc);
 		if (rsvp_nxt) {
-			SDE_ERROR("poll timeout cur %d nxt %d enc %d\n",
+			pr_err("poll timeout cur %d nxt %d enc %d\n",
 				rsvp_cur->seq, rsvp_nxt->seq, enc->base.id);
-			ret = -EINVAL;
+			SDE_EVT32(enc->base.id, rsvp_cur->seq, rsvp_nxt->seq, SDE_EVTLOG_ERROR);
+			ret = -EAGAIN;
 			goto end;
 		}
 	}