diff options
| author | Dhaval Patel <pdhaval@codeaurora.org> | 2015-12-21 15:31:12 -0800 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:17:34 -0700 |
| commit | 7c1a00bcd300dc6c9284eae3b5445cd0fa97e985 (patch) | |
| tree | a7411e10f51289cb2c222f0b09de01d8069fd487 /drivers/video/fbdev | |
| parent | 526b0d9c334904131829c4dba3529980e2744ff7 (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.c | 5 |
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 |
