diff options
| author | Jayant Shekhar <jshekhar@codeaurora.org> | 2014-11-20 12:40:32 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:36:25 -0700 |
| commit | d742011534d5e39282982e7d448d9e2e948ef621 (patch) | |
| tree | 3ca8340868fc69e35ec2ab7f3d0161d901e1231d /drivers/video/fbdev | |
| parent | 0cc38ec27bf8664ba9558b25890c499233da661f (diff) | |
msm: mdss: Schedule pp_done_work only for last frame update
Currently notify frame is done in wait4pingpong, and there
may not be a real need for the pp_done_work workqueue. But
we still keep it because to trigger the notification once
the last frame sent to display is actually transferred.
So, cancel the workqueue if singalling is already done
within the wait4pp but keep the work queue for the idle
cases. This can avoid unnecessary CPU scheduling in a lot
of cases.
Change-Id: I2099f18e48502fe7d0eac337f04d8e3f4711c2f2
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c index 45a9c9e6bac9..2ce4ed678870 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c @@ -627,6 +627,8 @@ static int mdss_mdp_cmd_wait4pingpong(struct mdss_mdp_ctl *ctl, void *arg) ctx->pp_timeout_report_cnt = 0; } + cancel_work_sync(&ctx->pp_done_work); + /* signal any pending ping pong done events */ while (atomic_add_unless(&ctx->pp_done_cnt, -1, 0)) mdss_mdp_ctl_notify(ctx->ctl, MDP_NOTIFY_FRAME_DONE); |
