From 7fb1d484094cb85b1c58d05d4328d9151fa10c77 Mon Sep 17 00:00:00 2001 From: Mahadevan Date: Fri, 5 May 2023 14:45:13 +0530 Subject: [PATCH] disp: msm: sde: trigger a suspend commit if display in video mode When there is runtime PM suspend and a video mode panel is Doze state or Doze suspend state PM suspend will fail as clocks are on. To avoid this do a suspend commit while entering runtime PM suspend so that xo shutdown will be successful. Change-Id: I108184bf2e5ea18ef54eab879556e9c941514176 Signed-off-by: Mahadevan --- msm/sde/sde_kms.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/msm/sde/sde_kms.c b/msm/sde/sde_kms.c index 87a3aaad12..90969209a7 100644 --- a/msm/sde/sde_kms.c +++ b/msm/sde/sde_kms.c @@ -4187,7 +4187,8 @@ retry: continue; lp = sde_connector_get_lp(conn); - if (lp == SDE_MODE_DPMS_LP1) { + if (lp == SDE_MODE_DPMS_LP1 && + !sde_encoder_check_curr_mode(conn->encoder, MSM_DISPLAY_VIDEO_MODE)) { /* transition LP1->LP2 on pm suspend */ ret = sde_connector_set_property_for_commit(conn, state, CONNECTOR_PROP_LP, SDE_MODE_DPMS_LP2); @@ -4199,7 +4200,8 @@ retry: } } - if (lp != SDE_MODE_DPMS_LP2) { + if (lp != SDE_MODE_DPMS_LP2 || + sde_encoder_check_curr_mode(conn->encoder, MSM_DISPLAY_VIDEO_MODE)) { /* force CRTC to be inactive */ crtc_state = drm_atomic_get_crtc_state(state, conn->state->crtc); @@ -4211,7 +4213,8 @@ retry: goto unlock; } - if (lp != SDE_MODE_DPMS_LP1) + if (lp != SDE_MODE_DPMS_LP1 || + sde_encoder_check_curr_mode(conn->encoder, MSM_DISPLAY_VIDEO_MODE)) crtc_state->active = false; ++num_crtcs; }