Revert "Revert "Use O3 compiler optimizations""

This reverts commit df8a6bbee57d96f39511cb001e8a9e713e348688.
ARM: add auto hotplug driver
auto_hotplug: enable the min_online_cpus value

Use a module_param_cb to set the minimum number of online CPUs when the screen is on.

The values are between 1-4.

usage:
echo '1' > /sys/module/auto_hotplug/parameters/min_online_cpus
Reduce the min readahead value
auto_hotplug: some tweaks

Several tweaks to try to improve battery life.
Add max_online_cpus feature
Fix up some various naming issues after inclusion of max_online_cpus code
Francisco is right, onlining all cores is a nice workaround for the real problem.
Onlining all cores using the driver's framework.
Some whitespace cleanup.
MSM_MPD: Disable by default
auto_hotplug: set cpu online min/max to 2 by default
auto_hotplug: initial min sampling rate at initialization and change
dynamic sampling rate eq.
auto_hotplug: Add tunable parameters enable/min sampling rate, set min
=2, max = 4 by default.
lib/string: use glibc version

the performance of memcpy and memmove of the general version is very
inefficient, this patch improved them.

Signed-off-by: Miao Xie <miaox*******>

Conflicts:

	lib/string.c
lib/memcopy: use glibc version

the kernel's memcpy and memmove is very inefficient. But the glibc version is
quite fast, in some cases it is 10 times faster than the kernel version. So I
introduce some memory copy macros and functions of the glibc to improve the
kernel version's performance.

The strategy of the memory functions is:
1. Copy bytes until the destination pointer is aligned.
2. Copy words in unrolled loops.  If the source and destination are not
   aligned in the same way, use word memory operations, but shift and merge
   two read words before writing.
3. Copy the few remaining bytes.

Signed-off-by: Miao Xie <miaox*******>

Conflicts:

	lib/Makefile
auto_hotplug: set min cpu online to 2
auto_hotplug: Disable by default
auto_hotplug: Force offline cpu 1,2 & 3 during suspend mode to save
battery usage.
auto_hotplug: limit suspend cpu0 freq to 192 - 1026 MHz and restore when
wakeup