summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorDhaval Patel <pdhaval@codeaurora.org>2015-12-21 15:31:12 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:17:34 -0700
commit7c1a00bcd300dc6c9284eae3b5445cd0fa97e985 (patch)
treea7411e10f51289cb2c222f0b09de01d8069fd487 /drivers/video/fbdev
parent526b0d9c334904131829c4dba3529980e2744ff7 (diff)
msm: mdss: remove clk off scheduling when commit pending
There can be race condition possible between Early touch event thread and kickoff thread. For ex: -> Eary touch event: Turns on clock and schedule the off after 4 vsync cycle. -> Kickoff thread: Leaves the clock on -> Second touch event: Reschedule the clock off workque The second touch event call scheduling the clock off after 4 vsync cycle. On loaded system, kickoff thread might get intruppted and get chance to rerun after 4 vysnc cycle. The clocks will be turned off for such use cases before PP done ISR. Change-Id: I85923146645379be1e3ccc578fc795306cd987ad Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
index 1c3fcba9d0f8..05a497951407 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
@@ -861,8 +861,11 @@ int mdss_mdp_resource_control(struct mdss_mdp_ctl *ctl, u32 sw_event)
* 1. Early wakeup cancelled the gate work.
* 2. Early wakeup cancelled the off work.
* 3. Early wakeup changed the state to ON.
+ *
+ * Driver will not allow off work under one condition:
+ * 1. Kickoff is pending.
*/
- if (schedule_off) {
+ if (schedule_off && !ctl->mfd->validate_pending) {
/*
* Schedule off work after cmd mode idle timeout is
* reached. This is to prevent the case where early wake