mako_hotplug: fix checkpatch warnings

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
mako_hotplug: we can shift left here instead.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Revert "ARM: 7494/1: use generic termios.h"

This reverts commit 9e51d16d3dbdce1bfebd07de8b351c037e57d573.
Revert "lib/lzo: huge LZO decompression speedup on ARM by using unaligned access"

This reverts commit 367e0ae961616f9cf89d9d1b5d399395e45f4e39.
Revert "arm: compile with the generic rwsem"

This reverts commit 722c5832cd7d33af9054cc2411ba32723212c81b.
mako_hotplug: fix a bug where all cores could stay indefinitely online if userspace (either root command or an app) onlined all cores when the counter was < 10. Fix it by querying the num_online_cpus() every sample (100ms).

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Headset: Ability to hang-up a call from a wired audio headset

Address OPO_52.
The KEY_MEDIA and KEY_VOLUMEUP are mapped to multiple buttons.
That will confuse the input class driver when one button is
pressed while others are released. Fuse all buttons with same
function to one will fix the problem.

Change-Id: Ife63602e68d0fad2813821f0c7e0b6d78cc5d878
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
power: Avoids bogus error messages for the suspend aborts.

Avoids printing bogus error message "tasks refusing to freeze", in cases
where pending wakeup source caused the suspend abort.

Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Change-Id: I913ad290f501b31cd536d039834c8d24c6f16928
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ASoC: wcd9xxx: Set chopper settings for UHQA mode

UHQA (Ultra High Quality Audio) requires chopper to set the
frequency to the actual frequency. Change enables chopper
to set the frequency to half for all audio streams
with different sampling rates and 24-bits per sample
other than UHQA mode.

CRs-Fixed: 722714
Change-Id: I7dbf2629c37f0139af67c8491a49197bb85cd315
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ASoC: msm: qdsp6v2: Fix for cmd status overwrite

There is a race condition between offload callback thread
and HAL thread which can cause an eos ack notification to
be overwritten by a stop command request. Fix this by
using separate status vars for commands originating from
different thread contexts

Change-Id: I87dc0e34f4c50d48a25f4d7eaccd876b2ae827f0
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
msm8974: Stop breaking the whole system

 * Deep breath............

   .....

 * Carveout allocations must be inside a memory { } stanza.

Change-Id: Ica240acec74acfd2180182d7a2725889452af5f6
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
wcd9xxx: core: Fix crash while headset insert and remove

When insert and remove headset continuously observe crash.
In the interrupt table for wcd9306, there is a interrupt
number of WCD9XXX_IRQ_RESERVED_2 (value 32).
In IRQ driver, irqs will be dispatched  based on this
interrupt table. But for WCD9XXX_IRQ_RESERVED_2, this
value being 32 and BIT_BYTE will be 4 whereas number
of interrupt registers are 0 to 3 only.
Here status array used to check interrupt set, access each
entry of interrupt table and see if bit mask is set.
so, when checking for WCD9XXX_IRQ_RESERVED_2 it will
access out of bound array status[4] which will return
unexpected value.
In failed case, status[4] matches bitmask for 32nd bit
and dispatches irq for invalid entry causing crash.
Remove the entry as it is not a valid entry and causing
out of bound access for wcd9306 and wcd9320.

Change-Id: I82ed3b47a3bd7cee7a3c90a4fba4981a0528702f
CRs-Fixed: 729475
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
power: bq27541: Convert wakelocks to wakeup sources

Change-Id: I1a66a7494aebe87ee2ebc1fd72066a130c0e9caf
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
cpu-boost: if the user is underclocking choose the minimum clock from input_boost_freq and policy->max for extra power savings if the underclocked freq is < input_boost_freq

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
misc: Update from Oppo release svn9954

Change-Id: Idc1a30e63ee548197bddf6886856e9a02bdfee39
(cherry picked from commit c928a4a9df58ea98519a692004c3dd7974101ce6)

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
camera_oppo: Upstream update svn9954

 * Add sensor state procfs

Change-Id: I2c14e38002e50e495d5c30db86e767cdb6071066
(cherry picked from commit c28b96ecb0e58591bd9adb82e7d118e5bbff8824)

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
bacon: Use old naming for LG panel

 * Bootloader is still sending the old name, revert the DT change for
   now to fix display detection on this hardware.

Change-Id: I850de726de2b96615ecb2763ec80b085a9102352
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchscreen: Update TP firmware to 14001220

Change-Id: If3e5cc74cb019fd4d1123db9cabba4e2e011e0c2
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Initial kecinzer commit

kernel: timeconst: Eliminate Perl warning

commit 63a3f603413ffe82ad775f2d62a5afff87fd94a0 upstream.

defined(@array) is deprecated in Perl and gives off a warning.
Restructure the code to remove that warning.

[ hpa: it would be interesting to revert to the timeconst.bc script.
  It appears that the failures reported by akpm during testing of
  that script was due to a known broken version of make, not a problem
  with bc.  The Makefile rules could probably be restructured to avoid
  the make bug, or it is probably old enough that it doesn't matter. ]

Reported-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

makefile: enable CCACHE

Makefile: add Linaro goddess optimizations

franco_defconfig: enable CC_OPTIMIZE_MORE

toolchain: linaro: Fix a bunch of warnings and errors

Change-Id: I74dc4a9a1c46a9d84d2a592d24a905b21aa87a15

toolchain: linaro: Fix a bunch of warnings and errors II

toolchain: linaro: fix uninitialized kbuf in sysctl.c for linaro optimizations

Change-Id: Idd983e621b67d4016ff113b18de8f8a59bc70c85

toolchain: linaro: fix warning subbuf.pages may be used uninitialized

Change-Id: I0aaa7ccb4a29ec58d7d05e24c19f22c8cc50c8cb

toolchain: linaro: fix ICE in fs/fs-writeback.c with gcc4.7

fs/fs-writeback.c: In function 'bdi_writeback_thread':
fs/fs-writeback.c:993:1: internal compiler error: in push_minipool_fix, at config/arm/arm.c:13180
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[1]: *** [fs/fs-writeback.o] Error 1
make: *** [fs] Error 2

$ arm-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=/home/showp1984/WORK/toolchain/android-toolchain-eabi/bin/arm-eabi-gcc
COLLECT_LTO_WRAPPER=/home/showp1984/WORK/toolchain/android-toolchain-eabi/bin/../libexec/gcc/arm-eabi/4.7.2/lto-wrapper
Target: arm-eabi
Configured with: /mnt/jenkins/workspace/linaro-android_toolchain-4.7-2012.09/build/objdir/temp-src/gcc-linaro-4.7-2012.09/configure --prefix=/tmp/android-toolchain-eabi --host=x86_64-linux-gnu --build=x86_64-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/mnt/jenkins/workspace/linaro-android_toolchain-4.7-2012.09/build/objdir/temp-install --with-mpfr=/mnt/jenkins/workspace/linaro-android_toolchain-4.7-2012.09/build/objdir/temp-install --with-mpc=/mnt/jenkins/workspace/linaro-android_toolchain-4.7-2012.09/build/objdir/temp-install --with-cloog=/mnt/jenkins/workspace/linaro-android_toolchain-4.7-2012.09/build/objdir/temp-install --with-ppl=/mnt/jenkins/workspace/linaro-android_toolchain-4.7-2012.09/build/objdir/temp-install --disable-ppl-version-check --disable-cloog-version-check --enable-cloog-backend=isl --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --disable-libssp --disable-nls --disable-libmudflap --disable-shared --disable-sjlj-exceptions --disable-libquadmath --disable-libitm --disable-libatomic --with-float=soft --with-fpu=vfp --with-arch=armv5te --enable-target-optspace --prefix=/tmp/android-toolchain-eabi --disable-docs --disable-nls --with-gcc-version=linaro-4.7-2012.09 --with-binutils-version=2.23.51.0.3 --with-gmp-version=5.0.5 --with-mpfr-version=3.1.1 --with-mpc-version=1.0 --target=arm-eabi --enable-threads --enable-tls --disable-libgomp --disable-libstdc__-v3 --disable-libitm --disable-libatomic
Thread model: single
gcc version 4.7.2 20120910 (prerelease) (Linaro GCC 4.7-2012.09)

Change-Id: Ibf92c1f6d844368fe9da52315a975dc1928962a7
Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

toolchain: linaro: Fix a bunch of warnings and errors -O3

- Fixes a bunch of initiliazed vars
- Compile lib/bitmap.c with -Os due of a bug
  Reference: https://code.google.com/p/bricked/source/detail?repo=tenderloin&r=cb8b2fe72f43c5146cb340abb2026810e50a23fc
- Disable array-bounds warning on staging prima driver

Change-Id: If17b3db45d8494bb5b5f8e13b8e8478e4fc9b10f

toolchain: linaro: fix warning: 'it.task' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

toolchain: linaro: xc5000: fix warning 'quality' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

toolchain: linaro: fix warning 'kernel_dev' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

toolchain: linaro: fix 'warning: 'kernel_type' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

toolchain: linaro: xc5000: fix warning 'frame_lines' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

toolchain: linaro: l2cap_core: fix 'warning: '...' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

fix: kernel/auditsc.c:927:23: warning: 'state' may be used uninitialized in this function

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

drivers/media/common/tuners/xc5000: fix 'warning: 'lock_status' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

drivers/media/common/tuners/xc5000: fix 'warning: 'adc_envelope' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

drivers/media/common/tuners/xc4000: fix 'warning: '...' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

drivers/usb/host/ehci-sched: fix: 'warning: 'c_mask' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

fs/fuse/control: fix 'warning: 'val' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

fs/jbd2/journal: fix: 'warning: 'blocknr' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

net/unix/af_unix: fix: 'warning: '...' may be used uninitialized in this function'

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

ARM: compressed/head.S: work around new binutils warning

In August 2012, Matthew Gretton-Dann checked a change
into binutils labelled "Error on obsolete & warn on
deprecated registers", apparently as part of ARMv8
support. Apparently, this was supposed to emit
the message "Warning: This coprocessor register access
is deprecated in ARMv8" when using certain mcr/mrc
instructions and building for ARMv8. Unfortunately,
the message that is actually emitted appears to be
'(null)', which is less helpful in comparison.

Even more unfortunately, this is biting us on
every single kernel build with a new gas, because
arch/arm/boot/compressed/head.S and some other files
in that directory are built with -march=all since
kernel commit 80cec14a8 "[ARM] Add -march=all to
assembly file build in arch/arm/boot/compressed"
back in v2.6.28.

This patch reverts Russell's nice solution and
replaces it with a more complex one that sprinkles
.arch statements inside of the head.S file in
functions that are executed in different architecture
levels, which seems to solve the original problem
just as well, and gets rid of the new one, too.

Without this patch, building anything results in:

arch/arm/boot/compressed/head.S: Assembler messages:
arch/arm/boot/compressed/head.S:565: Warning: (null)
arch/arm/boot/compressed/head.S:676: Warning: (null)
arch/arm/boot/compressed/head.S:698: Warning: (null)
arch/arm/boot/compressed/head.S:722: Warning: (null)
arch/arm/boot/compressed/head.S:726: Warning: (null)
arch/arm/boot/compressed/head.S:957: Warning: (null)
arch/arm/boot/compressed/head.S:996: Warning: (null)
arch/arm/boot/compressed/head.S:997: Warning: (null)
arch/arm/boot/compressed/head.S:1027: Warning: (null)
arch/arm/boot/compressed/head.S:1035: Warning: (null)
arch/arm/boot/compressed/head.S:1046: Warning: (null)
arch/arm/boot/compressed/head.S:1060: Warning: (null)
arch/arm/boot/compressed/head.S:1092: Warning: (null)
arch/arm/boot/compressed/head.S:1094: Warning: (null)
arch/arm/boot/compressed/head.S:1095: Warning: (null)
arch/arm/boot/compressed/head.S:1102: Warning: (null)
arch/arm/boot/compressed/head.S:1134: Warning: (null)

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Paul Beeler <sparksco@gmail.com>

return_address.c: Fix warning - TODO: return_address should use unwind tables

Added Linaro 4.8.2 Fixes

vfp: makefile: compile with neon optimization

vfp: makefile: compile with neon and hard float

makefile: add -DNDEBUG to KBUILD_CFLAGS

oneplusone: kexec-hardboot: fix secondary rom boot - now is fast

Thanks a lot
@tiny4579
@KINGbabasula

transport.c: Fix warning: 'midQ' may be used uninitialized in this function

epm_adc.c: Fix warning ‘*((void *)&adc_data+2)’ may be used uninitialized in this function

keystore.c: Fix warning ‘payload_len’ may be used uninitialized in this function

Fix gcc-4.9.0 miscompilation of load_balance() in scheduler

commit 2062afb4f804afef61cbe62a30cac9a46e58e067 upstream.

Michel Dänzer and a couple of other people reported inexplicable random
oopses in the scheduler, and the cause turns out to be gcc mis-compiling
the load_balance() function when debugging is enabled.  The gcc bug
apparently goes back to gcc-4.5, but slight optimization changes means
that it now showed up as a problem in 4.9.0 and 4.9.1.

The instruction scheduling problem causes gcc to schedule a spill
operation to before the stack frame has been created, which in turn can
corrupt the spilled value if an interrupt comes in.  There may be other
effects of this bug too, but that's the code generation problem seen in
Michel's case.

This is fixed in current gcc HEAD, but the workaround as suggested by
Markus Trippelsdorf is pretty simple: use -fno-var-tracking-assignments
when compiling the kernel, which disables the gcc code that causes the
problem.  This can result in slightly worse debug information for
variable accesses, but that is infinitely preferable to actual code
generation problems.

Doing this unconditionally (not just for CONFIG_DEBUG_INFO) also allows
non-debug builds to verify that the debug build would be identical: we
can do

    export GCC_COMPARE_DEBUG=1

to make gcc internally verify that the result of the build is
independent of the "-g" flag (it will make the compiler build everything
twice, toggling the debug flag, and compare the results).

Without the "-fno-var-tracking-assignments" option, the build would fail
(even with 4.8.3 that didn't show the actual stack frame bug) with a gcc
compare failure.

See also gcc bugzilla:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

Reported-by: Michel Dänzer <michel@daenzer.net>
Suggested-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Cc: Jakub Jelinek <jakub@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

makefile: add to -Os -> call cc-disable-warning,maybe-uninitialized

Fixes for kernel compile w/ 4.8

kecinzer adaptation

Signed-off-by: Petr kecinzer Řezníček <kecinzer@gmail.com>

Fixes for compilation errors

Signed-off-by: Petr kecinzer Řezníček <kecinzer@gmail.com>

Enable graphite

Signed-off-by: Petr kecinzer Řezníček <kecinzer@gmail.com>

More optimizations

Signed-off-by: Petr kecinzer Řezníček <kecinzer@gmail.com>

More and more optimizations

Signed-off-by: Petr kecinzer Řezníček <kecinzer@gmail.com>

ARM: move VFP init to an earlier boot stage

In order to use the NEON unit in the kernel, we should
initialize it a bit earlier in the boot process so NEON users
that like to do a quick benchmark at load time (like the
xor_blocks or RAID-6 code) find the NEON/VFP unit already
enabled.

Replaced late_initcall() with core_initcall().

Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
Acked-by: Nicolas Pitre <nico at linaro.org>

Signed-off-by: Paul Reioux <reioux@gmail.com>

ARM: be strict about FP exceptions in kernel mode

The support code in vfp_support_entry does not care whether the
exception that caused it to be invoked occurred in kernel mode or
in user mode. However, neither condition that could trigger this
exception (lazy restore and VFP bounce to support code) is
currently allowable in kernel mode.

In either case, print a message describing the condition before
letting the undefined instruction handler run its course and trigger
an oops.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
Acked-by: Nicolas Pitre <nico at linaro.org>
Signed-off-by: Paul Reioux <reioux@gmail.com>

ARM: add support for kernel mode NEON

In order to safely support the use of NEON instructions in
kernel mode, some precautions need to be taken:
- the userland context that may be present in the registers (even
  if the NEON/VFP is currently disabled) must be stored under the
  correct task (which may not be 'current' in the UP case),
- to avoid having to keep track of additional vfpstates for the
  kernel side, disallow the use of NEON in interrupt context
  and run with preemption disabled,
- after use, re-enable preemption and re-enable the lazy restore
  machinery by disabling the NEON/VFP unit.

This patch adds the functions kernel_neon_begin() and
kernel_neon_end() which take care of the above. It also adds
the Kconfig symbol KERNEL_MODE_NEON to enable it.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>

Signed-off-by: Paul Reioux <reioux@gmail.com>

ARM: crypto: add NEON accelerated XOR implementation

Add a source file xor-neon.c (which is really just the reference
C implementation passed through the GCC vectorizer) and hook it
up to the XOR framework.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>

ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled

Commit 0195659 introduced a NEON accelerated version of the xor_blocks()
function, but it needs the changes in this patch to allow it to be built
as a module rather than statically into the kernel.

This patch creates a separate module xor-neon.ko which exports the NEON
inner xor_blocks() functions depended upon by the regular xor.ko if it
is built with CONFIG_KERNEL_MODE_NEON=y

Reported-by: Josh Boyer <jwboyer@fedoraproject.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

ARM: only allow kernel mode neon with AEABI

This prevents the linker erroring with:

arm-linux-ld: error: arch/arm/lib/xor-neon.o uses VFP instructions, whereas arch/arm/lib/built-in.o does not
arm-linux-ld: failed to merge target specific data of file arch/arm/lib/xor-neon.o

This is due to the non-neon files being marked as containing FPA data/
instructions (even though they do not) being mixed with files which
contain VFP, which is an incompatible floating point format.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

franco_defconfig: enable KERNEL_MODE_NEON

block: disable add_random for more performance on SSD's

makefile: adaptation to full neon-vfpv4 support

arm: vfpmodule: Fix warning procfs vfp_bounce reporting failed

vfp: makefile: hard float is used so change flag accordingly

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>

Conflicts:
	lib/Makefile

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>

Version 20

Also new name convention.

Signed-off-by: Petr kecinzer Řezníček <kecinzer@gmail.com>

ext4: Speedup WB_SYNC_ALL pass called from sync(2)

When doing filesystem wide sync, there's no need to force transaction
commit (or synchronously write inode buffer) separately for each inode
because ext4_sync_fs() takes care of forcing commit at the end (VFS
takes care of flushing buffer cache, respectively). Most of the time
this slowness doesn't manifest because previous WB_SYNC_NONE writeback
doesn't leave much to write but when there are processes aggressively
creating new files and several filesystems to sync, the sync slowness
can be noticeable. In the following test script sync(1) takes around 6
minutes when there are two ext4 filesystems mounted on a standard SATA
drive. After this patch sync takes a couple of seconds so we have about
two orders of magnitude improvement.

      function run_writers
      {
        for (( i = 0; i < 10; i++ )); do
          mkdir $1/dir$i
          for (( j = 0; j < 40000; j++ )); do
            dd if=/dev/zero of=$1/dir$i/$j bs=4k count=4 &>/dev/null
          done &
        done
      }

      for dir in "$@"; do
        run_writers $dir
      done

      sleep 40
      time sync

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

makefile: neon: Enable unsafe-math-optimizations

* If the selected floating-point hardware includes the NEON extension
  (e.g. -mfpu=‘neon’), note that floating-point operations are not
  generated by GCC's auto-vectorization pass unless
  -funsafe-math-optimizations is also specified. This is because NEON
  hardware does not fully implement the IEEE 754 standard for
  floating-point arithmetic (in particular denormal values are treated
  as zero), so the use of NEON instructions may lead to a loss of precision.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Fastcharge squashed commits

fastcharge: backported and adapted for OnePlus One

thanks a lot
@faux123
@DooMLoRD

franco_defconfig: enable FORCE_FAST_CHARGE

drivers/power/qpnp-charger.c: fix charging issues with non-Oppo chargers

1. refactor the current limiting code to use existing temperature sensing
   capability rather than some arbitrary 1 minute loop

2. removed all current check loops below 900mA. Due to inaccurate ADC input
   readings, some non-Oppo wall chargers are mis-identified and their charging
   capabilities severely limited by the over protective driver

USB data port charging are unaffected by these changes

Change-Id: Id888a25b02b99556d29156520e01d21f7a487168
Signed-off-by: Paul Reioux <reioux@gmail.com>

drivers/power/qpnp-charger.c: add back dropped aicl control

Change-Id: Ib62d2a948aec7c2974ed6a98b11df208cdb8af4c
Signed-off-by: Paul Reioux <reioux@gmail.com>