Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbe22792 authored by Jayaprakash Madisetty's avatar Jayaprakash Madisetty
Browse files

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: default avatarJayaprakash Madisetty <jmadiset@codeaurora.org>
parent 73b5bf57
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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))