Selaa lähdekoodia

disp: msm: sde: avoid rsvp_nxt allocation for suspend commit

During suspend commit, crtc_commit thread is blocked waiting
for touch response in drm_panel_notifier_call_chain and
rsvp_nxt pointer clear in drm_atomic_state_put is pending
(>100ms wait) which was allocated in atomic_check. When
resume commit is triggered early, RM poll timeouts are seen
due to rsvp_nxt pointer is not cleared and thus causing
power on commit failures. This change avoids RM reserve
during atomic_check of suspend commit as msm_crtc_set_mode
returns early and rsvp_nxt is not used elsewhere in commit path.

Change-Id: I6d76ec7cc07f6961b909febd3d9d932b46052c17
Signed-off-by: Akhil Jaiswal <[email protected]>
Akhil Jaiswal 1 vuosi sitten
vanhempi
sitoutus
9ee92efce9
1 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 3 2
      msm/sde/sde_encoder.c

+ 3 - 2
msm/sde/sde_encoder.c

@@ -1131,10 +1131,11 @@ static int _sde_encoder_atomic_check_reserve(struct drm_encoder *drm_enc,
 		}
 
 		/* Skip RM allocation for Primary during CWB usecase */
-		if (!crtc_state->mode_changed && !crtc_state->active_changed &&
+		if ((!crtc_state->mode_changed && !crtc_state->active_changed &&
 			crtc_state->connectors_changed &&
 			!msm_is_private_mode_changed(conn_state) && (conn_state->crtc ==
-			conn_state->connector->state->crtc))
+			conn_state->connector->state->crtc)) ||
+			(crtc_state->active_changed && !crtc_state->active))
 			goto skip_reserve;
 
 		/* Reserve dynamic resources, indicating atomic_check phase */