lib/int_sqrt.c: optimize square root algorithm

Optimize the current version of the shift-and-subtract (hardware)
algorithm, described by John von Newmann[1] and Guy L Steele.

Iterating 1,000,000 times, perf shows for the current version:

 Performance counter stats for './sqrt-curr' (10 runs):

         27.170996 task-clock                #    0.979 CPUs utilized            ( +-  3.19% )
                 3 context-switches          #    0.103 K/sec                    ( +-  4.76% )
                 0 cpu-migrations            #    0.004 K/sec                    ( +-100.00% )
               104 page-faults               #    0.004 M/sec                    ( +-  0.16% )
        64,921,199 cycles                    #    2.389 GHz                      ( +-  0.03% )
        28,967,789 stalled-cycles-frontend   #   44.62% frontend cycles idle     ( +-  0.18% )
   <not supported> stalled-cycles-backend
       104,502,623 instructions              #    1.61  insns per cycle
                                             #    0.28  stalled cycles per insn  ( +-  0.00% )
        34,088,368 branches                  # 1254.587 M/sec                    ( +-  0.00% )
             4,901 branch-misses             #    0.01% of all branches          ( +-  1.32% )

       0.027763015 seconds time elapsed                                          ( +-  3.22% )

And for the new version:

Performance counter stats for './sqrt-new' (10 runs):

          0.496869 task-clock                #    0.519 CPUs utilized            ( +-  2.38% )
                 0 context-switches          #    0.000 K/sec
                 0 cpu-migrations            #    0.403 K/sec                    ( +-100.00% )
               104 page-faults               #    0.209 M/sec                    ( +-  0.15% )
           590,760 cycles                    #    1.189 GHz                      ( +-  2.35% )
           395,053 stalled-cycles-frontend   #   66.87% frontend cycles idle     ( +-  3.67% )
   <not supported> stalled-cycles-backend
           398,963 instructions              #    0.68  insns per cycle
                                             #    0.99  stalled cycles per insn  ( +-  0.39% )
            70,228 branches                  #  141.341 M/sec                    ( +-  0.36% )
             3,364 branch-misses             #    4.79% of all branches          ( +-  5.45% )

       0.000957440 seconds time elapsed                                          ( +-  2.42% )

Furthermore, this saves space in instruction text:

   text    data     bss     dec     hex filename
    111       0       0     111      6f lib/int_sqrt-baseline.o
     89       0       0      89      59 lib/int_sqrt.o

[1] http://en.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC

Signed-off-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Reviewed-by: Jonathan Gonzalez <jgonzlez@linets.cl>
Tested-by: Jonathan Gonzalez <jgonzlez@linets.cl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
lib/lzo: Rename lzo1x_decompress.c to lzo1x_decompress_safe.c

Rename the source file to match the function name and thereby
also make room for a possible future even slightly faster
"non-safe" decompressor version.

Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
lib/lzo: Update LZO compression to current upstream version

This commit updates the kernel LZO code to the current upsteam version
which features a significant speed improvement - benchmarking the Calgary
and Silesia test corpora typically shows a doubled performance in
both compression and decompression on modern i386/x86_64/powerpc machines.

Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and above

Modern GCC can generate code which makes use of the CPU's native
unaligned memory access capabilities.  This is useful for the C
decompressor implementations used for unpacking compressed kernels.

This patch disables alignment faults and enables the v6 unaligned
access model on CPUs which support these features (i.e., v6 and
later), allowing full unaligned access support for C code in the
decompressor.

The decompressor C code must not be built to assume that unaligned
access works if support for v5 or older platforms is included in
the kernel.

For correct code generation, C decompressor code must always use
the get_unaligned and put_unaligned accessors when dealing with
unaligned pointers, regardless of this patch.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Enable UNALIGNED_ACCESS for the new LZO algorithm to use. LZO decrompression is used on QCACHE so we benefit a little from the new and improved LZO code.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Enable pipe flag.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Added optimized ARM RWSEM algorithm.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
msm: krait: export CPU type to userspace instead of having it buried on the kmsg log so that app developers can show it on their apps.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
msm: kgsl: Bump up the GPU frequency for long batch processing

Compute workloads run without kernel interaction for long periods
of time.  If one is identified early, increase the frequency to
finish it as fast as possible, rather than waiting for the standard
algorithm to do so.

Change-Id: I213ccabfae5e1000cdc34bc1d92bdc3bad86383d
CRs-Fixed: 441847
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>

Conflicts:
	drivers/gpu/msm/kgsl_pwrscale_trustzone.c

Signed-off-by: Josue Rivera <prbassplayer@gmail.com>
This reverts current Gamma control

Revert "Gamma Control: attempt to fix a kernel panic."

This reverts commit d2120b9194336a90ca513e26f7e3ab600a82220e.

Revert "Gamma Control: improve the code when changing the gamma values. Also protect it with a mutex in hope to prevent bootloops when setting this values with an init.d. Remove limits on contrast, saturation and brightness."

This reverts commit bcaa892e44e3eddfef77b913ce31e813a75e9d70.

Revert "Gamma Control V2: finish adding the #ifdef wrappers. Add sanity checks for contrast, saturation and brightness. Push version to 2."

This reverts commit 6f795c9303e08df984cf495f845744de6f2c013a.

Revert "Gamma Control: fix mix between whites and grays."

This reverts commit bd525ee279423f64505ee77ffd5a5087d8ecaea2.

Revert "Gamma Control: add Kconfig option for this interface. After changing the values the array is refreshed and gets rid of the necessity of screen off/on to apply the changes. Whites and Grays were mixed too, so thats fixed."

This reverts commit 20490b81cf1addff2fe2b414fafa830177df1d74.

Revert "Add Gamma Control v1. Thanks to @paranoidandroid for researching what each gamma value changed so that I could build this interface. It enables the possibility of tweaking whites, mids, blacks, contrast, saturation, brightness and greys. This is a full GPL'ed code and easy to use for any user without any special mumbo jumbo."

This reverts commit 05c4b2ef0e6dea26e196974d3895ced73f68f3fc.
mach-msm: board-mako-display.c: revert c1be92b796 partly - banding fix wasn't reverted, the yellow and green reinforce and blue subdue is reverted.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
mako: display: fix RGB values to be reset each screen on/off.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
gamma_control: add extensive control over the display gamma curve.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>

Conflicts:
	drivers/misc/Kconfig
	drivers/misc/Makefile

Change-Id: Ifc8145687493fbf0f723ec240b83fdfb1375ba80
gamma_control: fix permissions for userspace apps.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
gamma_control: change to stock values.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Bumped to Alpha 5

Change-Id: I4b93e6ff1216f6592a26fdc470ab9bedda2c1ee9
Signed-off-by: Josue Rivera <prbassplayer@gmail.com>
Merge commit 'refs/changes/19/29219/1' of ssh://grapefruit.slimroms.net:29299/SlimRoms/kernel_lge_mako into HEAD