Revert "arm: mach-msm: Remove the unused msm_mpdecision code"

This reverts commit 613efc750b7469718f463dffaf0c4853f7dd0659.
Revert "arm: mach-msm: Remove unnecessary msm_rq_stats code"

This reverts commit 4fe247d19a314e19c887e6cf97f12d974c749ea3.
msm: hotplug: Add MSM Hotplug driver
msm: hotplug: merge with latest myfluxy N5 repo
msm: hotplug: remove lcd notifier routine
msm: hotplug: set min cpus online to two
msm: hotplug: Consider load instead of frequency for slowest cpu

--w----r-T root root 4096 2014-04-15 08:22 cpus_boosted // number of cpus onlined after touchscreen event
-rw-rwxr-- root root 4096 2014-04-15 08:22 current_load // current average load across all online cpus (percent), read only
--w----r-T root root 4096 2014-04-15 08:22 down_lock_duration // minimum interval a cpu is kept online (milliseconds)
--w----r-T root root 4096 2014-04-15 08:22 history_size // number of samples taken in consideration for avarage load across cpus (see update rate), lower means quicker/more erratic
--w----r-T root root 4096 2014-04-15 08:22 max_cpus_online // maximum number of cpus to be onlined
--w----r-T root root 4096 2014-04-15 08:22 min_cpus_online // minimum number of cpus to stay online
drwxr-xr-x root root 2014-04-15 08:22 parameters
--w------- root root 4096 2014-04-15 08:22 uevent
--w----r-T root root 4096 2014-04-15 08:22 update_rate // interval between taking samples of load across cpus (milliseconds), lower means quicker/more erratic

--w----r-T root root 4096 2014-04-15 08:22 load_levels // threshold values for each cpu to come on- or offline (<cpu n> <up threshold> <down threshold>),
values should overlap, see struct load, level 0 is obviously a dummy to make it better readable, level 1 is cpu0 but means "one cpu online" etc.

thanks a lot
@myfluxi
msm: hotplug: Revert to original thresholds
msm: hotplug: Protect load stats routine and cleanup
msm: hotplug: Fix licensing issue

I have no idea about licensing and I could care less
but this should be correct.
msm: hotplug: Cleanup probe function

After performing nicely for over a half year this
actually starts looking almost decent...

thanks
@myfluxi
Fantastic Developer
msm: hotplug: two is better than one for cpus
msm: cpufreq: set to info level freq limits routine
msm: hotplug: Add enable/disable toggle

This is mainly for debugging purposes, i.e. using mpdecision.
msm: hotplug: Handle down lock per cpu

Handling down lock per cpu is more precise. We can now distinguish
between a regular interval and a generous time online after the last
input event, where it's likely that the user will interact with the
UI within then next few seconds again.
msm: hotplug: Remove unused include
msm: hotplug: Honor enabled toggle

Start workqueue only if enabled. Also queue remove down
lock work on cpu0, circumvent regular cpu down routine
when disabling hotplug work and remove complete nonsense
in store_min_cpus_online().
msm: hotplug: Terminate load thresh table
msm: hotplug: Lower load thresholds for more interactive response
msm: hotplug: Consider projected load after cpu offlined

Don't offline a cpu if we would drop under the lower
level's up threshold load. Also, add an optional hard
threshold load under which a cpu is never offlined.
Both is especially important for very short forced
online intervals.