disp: msm: avoid cwb on esd recovery commit

This change depends on HAL change which sets CONNECTOR_SET_CRTC
property to null for cwb conn, if cwb is enabled during esd failures.
This causes power off commit crtc_state's active_changed and
connectors_changed set to true, which is causing seamless_crtc
to true during msm_disable_outputs and this leads to invalid crtc
state. This change modifies the seamless_crtc condition and
the msm_crtc_set_mode callback is early returned during such cases
to power off crtc.

Without this change, crtc_disable is not called which avoids
SDE_FENCE_RESET_TIMELINE. On esd failure release fence is not
signaled for the planes used in the composition and this further
leads to GPU wait on release fence and causes fence timeout.

Change-Id: Ie5d8f1b99d6a2d335330331288223fbeba9f6e64
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
This commit is contained in:
Mahadevan
2022-02-02 13:27:18 +05:30
کامیت شده توسط Gerrit - the friendly Code Review server
والد 7b00783abe
کامیت 8f64b5283a

مشاهده پرونده

@@ -88,7 +88,8 @@ static inline bool _msm_seamless_for_crtc(struct drm_atomic_state *state,
if (msm_is_mode_seamless_dms(msm_mode) && !enable)
return true;
if (!crtc_state->mode_changed && crtc_state->connectors_changed) {
if (!crtc_state->mode_changed && crtc_state->connectors_changed &&
crtc_state->active) {
for_each_old_connector_in_state(state, connector,
conn_state, i) {
if ((conn_state->crtc == crtc_state->crtc) ||
@@ -319,6 +320,9 @@ msm_crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
mode = &new_crtc_state->mode;
adjusted_mode = &new_crtc_state->adjusted_mode;
if (!new_crtc_state->active)
continue;
if (!new_crtc_state->mode_changed &&
new_crtc_state->connectors_changed) {
if (_msm_seamless_for_conn(connector,