msm: kgsl: Lower bounds check the number of power levels

A misconfigured board file could cause an out-of-bounds
array access through this value.

Change-Id: I64bbad0c096a2efe65376991537d810141370d72
CRs-Fixed: 439230
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
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*******>
Signed-off-by: faux123 <reioux@gmail.com>
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*******>
Signed-off-by: faux123 <reioux@gmail.com>
switch do_fsync() to fget_light()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
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>
fs/dyn_sync_cntrl: dynamic sync control

The dynamic sync control interface uses Android kernel's unique early
suspend / lat resume interface.

While screen is on, file sync is disabled
when screen is off, a file sync is called to flush all outstanding writes
and restore file sync operation as normal.

Signed-off-by: Paul Reioux <reioux@gmail.com>
fs/dyn_sync_cntrl: Linux 3.4 Kernel compatibility fixup

Signed-off-by: faux123 <reioux@gmail.com>
fs/dyn_fsync: check dyn fsync control's active prior to performing fsync ops

Signed-off-by: Andrew Bartholomew <andrewb03@gmail.com>
dynamic filesync: add some cache optimizations

and clean up file format and typos

bump version to 1.1

Signed-off-by: Paul Reioux <reioux@gmail.com>
Initial hardcoded color change.
fastcharge v1

Conflicts:

	drivers/misc/fsa9485.c
fsa9485: fastcharge v3 - fixed, finally tracked this down
mm: optimize Kernel Samepage Merging(KSM)
mm: Adjust dirty writeback for IO boost
frandom:  Added to build
Sound Control: Sound control for WCD93xx codec Faux123 commit ty

Change-Id: Id005ea8298e427045e1bfb0cd644cfe907974cc4
sound control: update control offsets for MSM8960 soc

MSM8960 audio connections are slightly different from the APQ8064 for:

speaker control &
camcorder control (possibly stereo in nature where its mono on APQ8064)

Signed-off-by: faux123 <reioux@gmail.com>
msm: kgsl: Optimize clock call order

Eliminate the possibility of duplicate RPM calls while using
set_rate in addition to prepare/unprepare.

Change-Id: I74905c2f79b7f78047798b6e8022ded2fce5bf33
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
msm: kgsl: Reduce cmd buffer size for adreno_iommu_setstate

Command buffer of size 250 is not required in adreno_iommu_setstate.
Reduce the size to 230 to prevent a big stack frame.

Change-Id: I92bbbce67014255c9e22875491fb4bab64d83766
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>