cpufreq: Introduce CPU-boost framework

The CPU-boost framework allows you to place hooks in various drivers to boost the CPU for either a specified duration or indefinitely (until it is manually unboosted). If a new boost request is sent while the CPU is boosted then the new boost request will take precedence and immediately override the current boost.

Signed-off-by: Sultanxda <sultanxda@gmail.com>
Add initial CPU-boost hooks

CPU is currently boosted for these activities:
*Taking a picture (1188MHz for 3s)
*Starting video playback (1242MHz for 5s)
*Recording video (594MHz indefinite)
*Turning on the display (972MHz for 7s)

Signed-off-by: Sultanxda <sultanxda@gmail.com>
cpu_boost: Respect max frequency

If the requested boost frequency is greater than the maxfreq then reduce the boost to 2 steps below the current maxfreq (108MHz below the current maxfreq). If the maxfreq is 486MHz or lower then the boost will be canceled.

Signed-off-by: Sultanxda <sultanxda@gmail.com>
msm8x60_celox: Add CPU-boost hook in ts power-on sequence

The touchscreen is powered on roughly 100ms before the panel is powered on. This gives us an extra 100ms of earlier boosting when waking the device from sleep.

Signed-off-by: Sultanxda <sultanxda@gmail.com>
cpu_boost: Add sysfs interface
hercules: Enable CPU Boost
sweep2wake: Add sensitive option

This is for users (like myself) who feel like the current s2w is too tedious/precise to trigger. This option, when enabled only requires the 1st and last button to be triggered making it easier to initiate with a thumb or without making full contact & discontact with all 4 buttons.