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
Optimized ARM RWSEM algorithm

RWSEM implementation for ARM using atomic functions.
Heavily based on arch/sh/include/asm/rwsem.h

Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
arm/crypto: Add optimized AES and SHA1 routines

Add assembler versions of AES and SHA1 for ARM platforms.  This has provided
up to a 50% improvement in IPsec/TCP throughout for tunnels using AES128/SHA1.

Platform   CPU SPeed    Endian   Before (bps)   After (bps)   Improvement

IXP425      533 MHz      big     11217042        15566294        ~38%
KS8695      166 MHz     little    3828549         5795373        ~51%

Signed-off-by: David McCullough <ucdevel@gmail.com>
Signed-off-by: faux123 <reioux@gmail.com>
msm: boards: Enable Krait Retention.

Add SPM sequences to do Krait retention for 8960,8930
and 8064. Also added a new rpmrs level containing the
latencies and power measurements for this new low power
state.

CRs-Fixed: 369864
Change-Id: Ib30a9a978cf38b35037810a4001c9277837acd4c
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
add to Mako board as well!

Signed-off-by: faux123 <reioux@gmail.com>
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: mpdecision: disabled by default, replaced with msm_hotplug
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: 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: set min cpu to 1, add fb notifier

Thanks a lot:
@myfluxi
@dorimanx
msm: hotplug: Terminate load thresh table