mach-msm: added MP-Decision by @showp1984

squashed the following commits:
mdpec: fix missing ifdefs when compiling with earlysuspend
msm_mpdecision: opt out early if we are thermal throttled
msm_mpdecision: add locking to early_suspend related code, even if we
msm_mpdecision: fix early_suspend compilation
msm_mpdecision: add input boost triggers
msm_mpdecision: add missing #ifdefs around thermal related code
msm_mpdecision: fix boost_time not respecting sysfs changes
msm_mpdecision: also verify that boost frequencies are > minfreq
msm_mpdecision: move startdelay to init to save cycles on each work call
msm_mpdecision: early continue get_slowest_cpu() and _rate() to save
msm_mpdecision: fix whitespaces throughout the file to comply with li
msm_mpdecision: fix definitions for earlysuspend/lcd callback switch
msm_mpdecision: offload definitions to header
msm_mpdecision: remove per_cpu suspend value
msm_mpdecision: switch to lcd callback and improve sus/res code
msm_mpdecision: update inputboost frequencies
thermal/mpdec: export throttle indicator and don't input boost if we
msm_mpdecision: add fb callback, keep earlysuspend
msm_mpdecision: boost: if we are not boosted, revib_wq does not need
msm_mpdecision: fix changing boost freq sets min = boost freq
msm_mpdecision: several changes [read more]
msm_mpdecision: min_cpus & max_cpus should on/offline affected cpus
msm_mpdecision: change frequencies for input boost
msm_mpdecision: increasing the check delay to 130ms
msm_mpdecision: boost: don't schedule more check than needed
msm_mpdecision: boost: detect changed min frequency and update accord
msm_mpdecision: tune hotplug values
msm_mpdecision: input event boost: fix not resetting boost if cpu was
msm_mpdecision: add sysfs interface for input event boost
msm_mpdecision: add input event boost [read more]
msm_mpdecision: stats: if cpu is online, add current ontime to stats
msm_mpdecision: fix spacing across the whole file
Revert "msm_mpdecision: remove early_suspend, add fb callback"
msm_mpdecision: fix sleep, don't use pause
msm_mpdecision: add stats & expose to sysfs
Revert "mpdecision: don't use sleep, cancel/resume wq instead"
mpdecision: update copyright
mpdecision: checking every 100ms is enough
mpdecision: don't use sleep, cancel/resume wq instead
msm_mpdecision: tweak hotplug values
msm_mpdecision: on resume pull up cpu1
msm_mpdecision: turn on cpu1 early
msm_mpdecision: we can't turn off cpu0
msm_mpdecision: when returning from sleep, start immediately
msm_mpdecision: remove early_suspend, add fb callback
msm_mpdecision: disable debug
msm_mpdecision: various fixes and tweaks
msm_mpdecision: fix merge errors
msm_mpdecision: add get_rate()
msm_mpdecision: decrease delay between checks to 70ms
msm_mpdecision: use CONFIG_NR_CPUS for max_cpu sysfs
msm_mpdecision: add max/min cpu limits to sysfs
msm_mpdecision: use unique lock names
msm_mpdecision: cancel/resume main work thread on ES/LR
msm_mpdecision: use own workqueues
msm_mpdecision: remove useless locking
msm_mpdecision: fix disabling mpdecision over sysfs for multicore
msm_mpdecision: export the new, larger nwns/twts arrays to sysfs
msm_mpdecision: update header to include full feature list
msm_mpdecision: make earlysuspend/lateresume core independent
msm_mpdecision: don't let msm_mpdec_work_thread() run if we are still
msm_mpdecision: update core data on first call
msm_mpdecision: decrease decision delay
msm_mpdecision: decrease startup delay
msm_mpdecision: make debug output more compact & informative
msm_mpdecision: fix get_slowest_cpu()
msm_mpdecision: make msm_mpdec_work_thread() core independent
msm_mpdecision: make mpdecision() core independent
msm_mpdecision: add debug output
msm_mpdecision: fix check for khz/mhz value (idle_freq sysfs)
mach-msm: mpdecision: don't turn on cpu1 if cpu0 freq is below idle_freq
mach-msm: mpdecision: fixup: move idle block to mpdecision()
mach-msm: mpdecision: don't turn off cpu1 if freq > idle
mach-msm: mpdecision: sysfs: check if cpu is offline before hotpluggi
mach-msm: mpdecision: increase up threshold for Sense
mach-msm: mpdecision: increase start delay for Sense
mach-msm: mpdecision: allow mpdecision to be disabled (sysfs)
mach-msm: mpdecision: fix foreign cpu control detection
mach-msm: mpdecision: adjust thresholds for sense
mach-msm: mpdecision: increase startdelay for sense
mach-msm: mpdecision: remove debug output
mach-msm: mpdecision: add sysfs interface
mach-msm: mpdecision: rename msm_mpdec_suspend to msm_mpdec_cpudata
mach-msm: mpdecision: show how long the cpu was online
mach-msm: mpdecision: fix foreign hotplug/unplug detection
mach-msm: mpdecision: add email to (c)
mach-msm: mpdecision: remove up/down delay, our default delay is larg
mach-msm: mpdecision: always set the suspend var
mach-msm: mpdecision: show cpumask after up/down
mach-msm: mpdecision: don't start immediately
mach-msm: mpdecision: change early_suspend_level to blank_screen
mach-msm: mpdecision: pause if CPU is unplugged outside of mpdecision
mach-msm: mpdecision: restructure locks, add delay
mach-msm: mpdecision: add load based decision making
mach-msm: mpdecision: small cleanup
mach-msm: Add msm_mpdecision

Signed-off-by: DooMLoRD <metoo.mememe@gmail.com>

Conflicts: