summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_intf_video.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c
index bdf6705ef597..335614a33aaf 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c
@@ -2458,10 +2458,21 @@ static int mdss_mdp_video_early_wake_up(struct mdss_mdp_ctl *ctl)
* lot of latency rendering the input events useless in preventing the
* idle time out.
*/
- if (ctl->mfd->idle_state == MDSS_FB_IDLE_TIMER_RUNNING) {
- if (ctl->mfd->idle_time)
+ if ((ctl->mfd->idle_state == MDSS_FB_IDLE_TIMER_RUNNING) ||
+ (ctl->mfd->idle_state == MDSS_FB_IDLE)) {
+ /*
+ * Modify the idle time so that an idle fallback can be
+ * triggered for those cases, where we have no update
+ * despite of a touch event and idle time is 0.
+ */
+ if (!ctl->mfd->idle_time) {
+ ctl->mfd->idle_time = 70;
+ schedule_delayed_work(&ctl->mfd->idle_notify_work,
+ msecs_to_jiffies(200));
+ } else {
mod_delayed_work(system_wq, &ctl->mfd->idle_notify_work,
msecs_to_jiffies(ctl->mfd->idle_time));
+ }
pr_debug("Delayed idle time\n");
} else {
pr_debug("Nothing to done for this state (%d)\n",