drivers: cpufreq: Upstream optimizations

* Clean up and optimize cpufreq driver.
* This is needed for good multi cpu
  policy control via msm limiter.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: limiter: Introduce initial multi cpu control

* This extends current functionality of the driver
  to save min/max freq for each core.
* Disabled by default.
* CPU0 is master boot core for 3.4 kernel and user
  should not reduce max freq of this core more than
  half of range.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>

Conflicts:
	arch/arm/mach-msm/msm_limiter.c
Merged Latest Version of Alucard HotPlug & Alucard CPU Governor by @Alucard24

(cherry picked from commit 84fa93b854b1f856120d239f8678630aa267b014)

(cherry picked from commit ced051b277ae79e9924f16d69de3fbed10dc6cfd)

Conflicts:
	arch/arm/mach-msm/Makefile
add io_is_busy, update freq's and enable alucard hotplug

Conflicts:
	arch/arm/configs/hammerhead_defconfig
	arch/arm/mach-msm/msm_rq_stats.c
	drivers/cpufreq/cpufreq_conservative.c
	drivers/cpufreq/cpufreq_darkness.c
	drivers/cpufreq/cpufreq_ondemand.c
	drivers/cpufreq/cpufreq_pegasusq.c

Conflicts:
	arch/arm/configs/falcon_defconfig
cpufreq: add generic get_cpuidle_time

Easier to maintain this in one place.

Signed-off-by: Blechd0se <alex.christ@hotmail.de>

Conflicts:
	drivers/cpufreq/cpufreq_conservative.c
	drivers/cpufreq/cpufreq_ondemand.c
Fix Interactive Gov building error
Add & Enable Alucard cpufreq gov

(cherry picked from commit c86efa1548bb9f2d62cfd48347e83cf59235eaad)

Conflicts:
	drivers/cpufreq/Kconfig
	drivers/cpufreq/Makefile
	include/linux/cpufreq.h
Enable msm-limiter
cpufreq: Add interface for gov change

* Interface can be used by drivers to change gov.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Disable cpu-boost
ZRAM off Defconfig
set & fix localversion
powersuspend: new PM kernel driver for Android w/o early_suspend

Android early_suspend/late_resume PM kernel driver framework has been
deprecated by Google. This new powersuspend PM kernel driver is a replacement
for it and existing early_suspend drivers can be easily adapted to use this
new replacement driver

Signed-off-by: Paul Reioux <reioux@gmail.com>
Signed-off-by: Blechd0se <alex.christ@hotmail.de>

Conflicts:

	kernel/power/Kconfig

Signed-off-by: Blechd0se <alex.christ@hotmail.de>
powersuspend: fix logci derps :p

Signed-off-by: Paul Reioux <reioux@gmail.com>
Signed-off-by: Blechd0se <alex.christ@hotmail.de>
kernel/power/powersuspend: remove userspace dependency from powersuspend

make powersuspend not depend on a userspace initiator anymore, but use a hook
in autosleep instead.

Signed-off-by: Paul Reioux <reioux@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: pinkflozd <lk@varjanta.com>
Signed-off-by: Blechd0se <alex.christ@hotmail.de>
kernel/power/powersuspend: add back userpace control w/ default kernel control

make kernel / userspace mode switchable

Signed-off-by: Paul Reioux <reioux@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: pinkflozd <lk@varjanta.com>
Signed-off-by: Blechd0se <alex.christ@hotmail.de>
kernel/power/powersuspend: default to userspace for now

Signed-off-by: Paul Reioux <reioux@gmail.com>
kernel/power/powersuspend: LCD screen on/off hooks (Yank555.lu)

- add an alternative hook for screen on / off detection in the display
  pannel driver
- sleeps  ~0.1s sooner, wakes up ~1s later then autosleep
- clean up source formatting a bit (Paul Reioux)

Signed-off-by: Paul Reioux <reioux@gmail.com>
mdss_dsi_panel.c: add powersuspend hooks

Signed-off-by: Paul Reioux <reioux@gmail.com>
kernel/power/powersuspend: cumulative update to version 1.5

- fix hybrid-kernel mode cannot be set through sysfs

kernel/power/powersuspend: new PM kernel driver for Android w/o early_suspend v1.4 (Yank555.lu)

- add hybrid-kernel mode (autosleep and panel, first wins)
- default to hybrid-kernel mode
- harmonize debug message with my other stuff
- include all 3 modes as default, so it's only commenting out to change

kernel/power/powersuspend: new PM kernel driver for Android w/o early_suspend v1.3 (Yank555.lu)

- fix stupid typo
- add an alternative hook for screen on / off detection in the display panel driver
(sleeps ~0.1s sooner, wakes up ~1s later then autosleep)

kernel/power/powersuspend: new PM kernel driver for Android w/o early_suspend v1.2 (Yank555.lu)

- make kernel / userspace mode switchable

kernel/power/powersuspend: new PM kernel driver for Android w/o early_suspend v1.1 (Yank555.lu)

- make powersuspend not depend on a userspace initiator anymore, but use a hook in autosleep instead.

kernel/power/powersuspend: new PM kernel driver for Android w/o early_suspend (faux123)

Android early_suspend/late_resume PM kernel driver framework has been
deprecated by Google. This new powersuspend PM kernel driver is a replacement
for it and existing early_suspend drivers can be easily adapted to use this
new replacement driver

Signed-off-by: Paul Reioux <reioux@gmail.com>