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>
This commit is contained in:
Dhaval Patel 2015-12-21 15:31:12 -08:00 committed by David Keitel
parent 526b0d9c33
commit 7c1a00bcd3

View file

@ -861,8 +861,11 @@ int mdss_mdp_resource_control(struct mdss_mdp_ctl *ctl, u32 sw_event)
* 1. Early wakeup cancelled the gate work. * 1. Early wakeup cancelled the gate work.
* 2. Early wakeup cancelled the off work. * 2. Early wakeup cancelled the off work.
* 3. Early wakeup changed the state to ON. * 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 * Schedule off work after cmd mode idle timeout is
* reached. This is to prevent the case where early wake * reached. This is to prevent the case where early wake