msm_vibrator.c uses hrtimer to switch off the phone vibration as follows-

hrtimer_start(&vibe_timer, ktime_set(value / 1000, (value % 1000) *
1000000), HRTIMER_MODE_REL);

However, hrtimer does not get fired after the CPU suspends. Hence, if
the CPU suspends before the timer gets fired, the phone continues
vibrating until the next time when CPU wakes up causing unnecessary
battery drain (which can be as long as 15 minutes).

IMHO, one way to fix it would be to replace hrtimer by android alarm timer.

Thanks
Abhilash Jindal
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to