charge current interface
mach-exynos: cpufreq: undervolting and overclocking support

- vdd_level interface
- UV_mV interface
- max_current_idx and min_current_idx to limit the cpu to policy levels
- new frequency steps (1600, 100, 50, 25... total step size is 18)

Conflicts:

	arch/arm/mach-exynos/cpufreq-4x12.c
	arch/arm/mach-exynos/cpufreq.c
	drivers/cpufreq/cpufreq.c

Change-Id: Icf8681355bb23286ff72a84e00cb4165d8018000
Revert "mach-exynos: cpufreq: undervolting and overclocking support"

This reverts commit eb2f9c5aa0e49dd295f21d4c979cf29fc19deeeb.
Add BFS 406

Change-Id: I22b447977123a73682875e5cbff73c97b842c0c9
:x
Revert "Add BFS 406"

This reverts commit 759b102ce9d3dfcc1db1b7ddccbe0f3f0d13791e.
iadd bfs 406 to patches folder

Change-Id: Ie63850bcf8bc5b0ef454b14546925d54607263c5
charge_current: set defauts to 650mA
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*******>
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

Change-Id: I1f11565499f0948d308df1642ca3d22e1d062cec
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>

Conflicts:

	arch/arm/Makefile

Change-Id: I9c93ac648cc61aed23a27d47160ef90bd4245cae
fix build error

Change-Id: I8766c6e7027a7596553fcadeb5e4ca9ed757c288
mmc: fix the workqueue overload battery waste

After switching to the smdk4412 kernel I noticed a workqueue overload,
battery lasting less, and Android OS showing up at the top as result.

Tracing showed that mmc_host_clk_gate_work was one of the runqueues
called regularly in the background.

The #ifdef is clearly reversed and that leads to the ndelay being called
every time, while ndelay was never called before.

Not yet sure if this fixes the "apparent" regression but it's not bad so
far, after 1h of uptime android OS is below Android System.

Change-Id: Ib908b0c20c4bc8dd889d0d228ee3ea63820b98cf