From dbe227922765e50ef66a7af9e535ac308d70a7ac Mon Sep 17 00:00:00 2001 From: Jayaprakash Madisetty Date: Thu, 3 Jun 2021 15:26:51 +0530 Subject: [PATCH] disp: msm: sde: fix imbalance power vote during cwb and dms concurrency Imbalance power vote caused with below scenario: 1. Primary display running with CWB enabled. 2. Idle-PC has kicked in causing primary and cwb encoder to rc_idle state. 3. Post idle-PC with DMS switch enabled along with CWB. Changes made are to avoid pre_modeset and post_modeset callbacks for CWB encoder as it not required and it puts a unnecessary power vote causing power issues in suspend usecase. Change-Id: I95b7ba093484f50be5f575cafa63a02e8fbca441 Signed-off-by: Jayaprakash Madisetty --- msm/sde/sde_encoder.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index c4d7c021d311..0fbb0a83b07a 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -2272,9 +2272,9 @@ static int sde_encoder_virt_modeset_rc(struct drm_encoder *drm_enc, if (pre_modeset) { intf_mode = sde_encoder_get_intf_mode(drm_enc); - if (msm_is_mode_seamless_dms(adj_mode) || - (msm_is_mode_seamless_dyn_clk(adj_mode) && - is_cmd_mode)) { + if ((msm_is_mode_seamless_dms(adj_mode) || + msm_is_mode_seamless_dyn_clk(adj_mode)) && + is_cmd_mode) { /* restore resource state before releasing them */ ret = sde_encoder_resource_control(drm_enc, SDE_ENC_RC_EVENT_PRE_MODESET); @@ -2298,9 +2298,9 @@ static int sde_encoder_virt_modeset_rc(struct drm_encoder *drm_enc, adj_mode); } } else { - if (msm_is_mode_seamless_dms(adj_mode) || - (msm_is_mode_seamless_dyn_clk(adj_mode) && - is_cmd_mode)) + if ((msm_is_mode_seamless_dms(adj_mode) || + msm_is_mode_seamless_dyn_clk(adj_mode)) && + is_cmd_mode) sde_encoder_resource_control(&sde_enc->base, SDE_ENC_RC_EVENT_POST_MODESET); else if (msm_is_mode_seamless_poms(adj_mode))