diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_intf_video.c | 15 |
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", |
