From 692b25b2699d96e0f8149ffd7c686b1f3d4d94af Mon Sep 17 00:00:00 2001
From: Lloyd Atkinson <latkinso@codeaurora.org>
Date: Thu, 28 Apr 2016 14:53:01 -0400
Subject: [PATCH] msm: mdss: register for recovery handler in doze mode

The doze_suspend and stop state resets the
recovery handler. It is required to register it
again in doze mode because there can be frame
update in this power state.

Change-Id: I1bef7cdd63f21698aca18d326074ac3a0e4e5de4
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
---
 drivers/video/msm/mdss/mdss_mdp_intf_cmd.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c b/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c
index 627158013f28..664a7fe27469 100644
--- a/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c
+++ b/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c
@@ -427,12 +427,9 @@ static void mdss_mdp_cmd_intf_recovery(void *data, int event)
 
 	spin_lock_irqsave(&ctx->koff_lock, flags);
 	if (reset_done && atomic_add_unless(&ctx->koff_cnt, -1, 0)) {
-		u32 pp_num = ctx->right_only_update ? ctx->right_only_pp_num :
-						      ctx->pp_num;
-
 		pr_debug("%s: intf_num=%d\n", __func__, ctx->ctl->intf_num);
 		mdss_mdp_irq_disable_nosync(MDSS_MDP_IRQ_PING_PONG_COMP,
-			pp_num);
+			ctx->pp_num);
 
 		if (mdss_mdp_cmd_do_notifier(ctx))
 			notify_frame_timeout = true;
@@ -1286,6 +1283,9 @@ int mdss_mdp_cmd_stop(struct mdss_mdp_ctl *ctl, int panel_power_state)
 			 * get turned on when the first update comes.
 			 */
 			pr_debug("%s: reset intf_stopped flag.\n", __func__);
+			mdss_mdp_ctl_intf_event(ctl,
+				MDSS_EVENT_REGISTER_RECOVERY_HANDLER,
+				(void *)&ctx->intf_recovery);
 			ctx->intf_stopped = 0;
 			if (sctx)
 				sctx->intf_stopped = 0;
-- 
GitLab