msm: don't compile MSM_RUN_QUEUE_STATS.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
(cherry picked from commit ff4a3e7003ee7c531c29c45e69673a56244651b1)
Signed-off-by: thirdzcee <thirdzcee@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>
(cherry picked from commit e3300d8f42d30415d0134c949740267a922d0a61)
Signed-off-by: thirdzcee <thirdzcee@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>
(cherry picked from commit ba13f30dbd4cb19177d5cf0f9fcb67be1d5db990)
Signed-off-by: thirdzcee <thirdzcee@gmail.com>

Conflicts:
	arch/arm/vfp/vfpmodule.c
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>
(cherry picked from commit 6285e66b8eda5227669d2fa66384830d47bf59c5)
Signed-off-by: thirdzcee <thirdzcee@gmail.com>
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>
(cherry picked from commit 526b8a7e788ba3b703550900ffcfa60ec3ce9c0e)
Signed-off-by: thirdzcee <thirdzcee@gmail.com>
drivers/exfat: add Samsung's open source exFat module version 1.2.4

Signed-off-by: Paul Reioux <reioux@gmail.com>
(cherry picked from commit 42a1431fbf16e56b0d4763b04524e4e90b7575be)
Signed-off-by: thirdzcee <thirdzcee@gmail.com>
drivers/Makefile: add exFat support

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

Conflicts:

	drivers/Makefile

(cherry picked from commit b72981206e92c5ca5df0a21def04f270ff9e7f3b)
Signed-off-by: thirdzcee <thirdzcee@gmail.com>

Conflicts:
	drivers/Makefile
FIX error: redefinition of ‘vfp_kmode_exception’

Signed-off-by: thirdzcee <thirdzcee@gmail.com>
AGE OF INTELLI!!!
intelliplug
intellidemand
intelliactive

but no intellithermal though...LOL

Squashed commit of the following:

commit 36d5bf222084edeef69491d6e650a9e28692f18e
Author: thirdzcee <thirdzcee@gmail.com>
Date:   Thu Sep 25 08:59:46 2014 +0800

    redefinition you say
    ill just put an ifndef on it to be safe...

    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit e3cabeee4653cd848e25756134d24087ae4f9f2e
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Jul 19 12:57:29 2014 -0500

    intelliactive: rework input register/unregister

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 006a46594d86a3a2f12bb72f32261832dca5a7bc)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 7e9dca4e64167d0c4e50ce7ed51fa72af15da316
Author: Paul Reioux <reioux@gmail.com>
Date:   Fri Jul 18 22:01:03 2014 -0500

    intelli_plug: older Qualcomm kernel compatibility fixup

    ARGH... really angry at CAF code.

    some cpufreq driver APIs are incredibly unstable with some of the older
    MSM kernels.  The correct way is the fix the cpufreq drivers, but there are
    tons of variations out there, so rather than depending on a fix, make
    intelli_plug more universal by avoiding the troubling APIs altogether

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 0d2d3897167d7f84f8cba9503c699ab460edd2cc)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 2ba436ce168a9bd4838549fc8f37199789165dea
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jul 14 23:46:58 2014 -0700

    intelli_plug: use primary CPU's info data for non-boot cpu's settings

    Async CPU design has caused quite a bit of grief for controlling cpu
    frequencies

    bump to version 3.8

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 59161827a299ba2a796f7db2e056b3519536ccf3)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 94f791c4dcd0ed101917e61353118a34fb8ca207
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jul 14 23:43:31 2014 -0700

    intelli_plug: initialize ip_info struct element during driver init

    this will eliminate race issues

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 7993f1a6b941063fedccab2b904a3adcd08283f5)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 54b00a63c7b4c4fc5e5a407694f0a53360ca9448
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jul 14 23:42:37 2014 -0700

    intelli_plug: fix incorrect cpufreq API usage

    This resolves the wakeup kick and screen off max issues

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 3e017ac9db509ddd68fe9c3e66ab0df5c5627920)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit e51e1eaa47f47d0df2b25e4dfe523136555b07f7
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Jul 2 23:44:10 2014 -0500

    intelli_plug: only apply suspend/resume logic if active

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit d39d1f5ff87910f5b0c5c296137f4133550c7254)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 6b2fc52399eca83fb5e1a7a0f5d3bed25cb03158
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu Jul 10 21:46:29 2014 -0700

    drivers/cpufreq/cpufreq_intelliactive.c: GCC 4.9.x warning fix up

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 277e96dfe32e0098b4309fcd542cd762928b4f70)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 045719193c164dcb9cdb4ebedacff914481b6315
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun Jun 22 10:32:36 2014 -0700

    intelli_plug: fix logic error for eco mode profiles

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 318cbb0889edd43973ed58b8cd03d94e62d44287)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 5531998594f48d772d4ad4fa787c9d5962f2a905
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Jun 21 06:56:41 2014 -0700

    intelli_plug: adjust thread capacity for Cortex A7 SOCs

    Cortex A7 is much weaker than Krait processors

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit ed69e87a90ee3d9c2fe3c209558442bbd0e88fd9)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 211e3600ced0f886e3430a63267eaa45439849cb
Author: Paul Reioux <reioux@gmail.com>
Date:   Fri Jun 20 20:56:25 2014 -0500

    intelli_plug: unify powersuspend and earlysuspend drivers

    also minor clean up on the persist logic

    bump to version 3.7

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit e03072e66d60aa8f7324616e7dd2d83aefaba79a)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 68fe3297bd7ed4c235ebaa16203074a46e592400
Author: Paul Reioux <reioux@gmail.com>
Date:   Fri Jun 20 21:00:04 2014 -0500

    intelli_plug: move to its own directory. It's been cross platform for a while

    intelli_plug driver has been working on OMAP44xx, TEGRA 3, Exynos and
    MSM Krait/Cortex multi-core SOCs.  So it doesn't make sense to patch on a per
    SOC basis, move it to its own ARM platform independent folder so patches can
    apply to all supported ARM platforms

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit abc4cc57384c19450ebc5f94cc50beb8615b46e9)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/Kconfig
    	arch/arm/mach-msm/Makefile

commit 2b3394bf0fa51dcd1fafc8f14df3342652ddf3f2
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu Jun 19 17:43:41 2014 -0500

    intelli_plug: post 3.5 tweaks and code clean up

    bump to version 3.6

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 57854d89fa9a3094e8f13c64d0b436c3ba795081)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit b387f86a1ab6817a300fa75565087b14005946e5
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Jun 18 10:10:36 2014 -0500

    intelli_plug: add eco-extreme profile for more dual core use options

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 7fbe079aea0acc900be3dbf9e01adc042f6e3355)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit dfc8c576edfa03cb9214605a6fc4611914c16f6e
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Jun 18 02:07:26 2014 -0700

    intelli_plug: deprecate eco mode. replaced by built-in profile

    bump version to 3.5

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit a6436c73a59c785dbe2e1e70f4ae48fbfcf2aa08)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit afe1b590c1e246f2e5fc527f4b37578e45aac505
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Jun 18 01:32:22 2014 -0700

    intelli_plug: add automatic dual-core initializations

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 8cfd3ab00ce0334b11bd15052fe86cd719189e72)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 2f13dfc43bfe4309debecaa9d3a08bc6db45e58a
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Jun 18 02:16:56 2014 -0500

    intelli_plug: misc minor code fixup post 3.4 update

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 229a4cf8d3c1a70f93f580538e56f9eb421fbf20)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 77194023625d68c18aaa0cac111c9f325f1b37ec
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Jun 18 00:15:59 2014 -0500

    intelli_plug: add nr_running_thresholds based on thread capacity of SOC type

    instead of hard coded nr_running_thresholds, perform compile time calculation
    of thresholds based on thread capacity of SOC types.

    bump version to 3.4

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit de44f891d6f1bcf77c7ee6f37fdef0df9c55d5aa)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 261e5d443c91eee75b4f9e3c085fa90d1d1f0eb0
Author: Paul Reioux <reioux@gmail.com>
Date:   Tue Jun 17 13:17:17 2014 -0500

    intelli_plug: remove legacy msm_rq based code

    just use the original algorithm based on nr_running_stats

    bump version to 3.3

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

    Conflicts:
    	arch/arm/mach-msm/intelli_plug.c

    (cherry picked from commit 918941c9eea7f71251465c68f1ebbf4e5eae7708)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit c4e5ae5425949e17b973437b44db87fafcd49b66
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jun 16 19:51:31 2014 -0500

    intelli_plug: tweak cpu_nr_running threshold

    and fix minor logic issues

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 857972a44d5ccc9691a1d5225f8f87681098cd17)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit dc165f4e700d393e74a943368c9025d71e09a674
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jun 16 03:34:47 2014 -0500

    intelli_plug: allow cpu_nr_running_threshold to be user adjustable

    bump version to 3.2

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit a0fa65cd883ee1f08f09c0850c9b5afb83fef8f8)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit d0771de57f7ed3a7e9d34c85d1f5db867cfd7442
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jun 16 03:06:51 2014 -0500

    intelli_plug: use per cpu nr_runnings stats for unplugging cores

    bump version to 3.1

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

    Conflicts:
    	arch/arm/mach-msm/intelli_plug.c

    (cherry picked from commit 0467f5393c7e98f664b5c15c25f2af39902dc53f)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 6658939374339e2262714e21feedb2ca35a6d246
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jun 16 03:05:08 2014 -0500

    Intelli_plug: kernel sched/core: add per cpu nr_running stats

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 1e1645980a4007e8743bc18ddad763e0b9ebd368)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 72e20a0283240e07f5a48ed5a2ab7250ffb8a3f6
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun Jun 15 16:42:47 2014 -0500

    intelli_plug: add profiles support and misc code optimization

    bump to version 3.0

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 0ed271c44522db4dfb97232e9ef68d04d28405ee)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit bd2cc17f12deaebd030a308602044e4054bb9838
Author: Paul Reioux <reioux@gmail.com>
Date:   Tue Jun 3 01:49:41 2014 -0700

    intelli_plug: refactor stats calculation code to be less intrusive

    this is done for those kernels which do not have 100% source code available
    and must use existing closed source modules such as wifi drivers

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

    added some of my own modifications to sched.h

    (cherry picked from commit 69b761a3de6cd389df779de9f1c72cf82d5534fc)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	kernel/sched/sched.h

commit 02b9d14a5c68ebc3bff64d227d6ad0d61575138e
Author: thirdzcee <thirdzcee@gmail.com>
Date:   Thu Sep 25 08:36:48 2014 +0800

    Revert "Intelli_plug: special dual-core adaptation for all dualcore SOCs"

    This reverts commit a9eb4943b11f3a21c10b72b4b3ed58393093d968.

    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 0f978457e8097bfe74956f199090378aefd6aa66
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun May 25 17:37:20 2014 -0700

    intelli_plug: add parameter to control touch boost on/off

    bump version to 2.6

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit efc12458118fc9c28668a82d231b6fc50982b715)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 5222adca12f06c97bc714291205a2649e8ce70a2
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun May 25 17:36:27 2014 -0700

    intelli_plug: add screen off max controls

    bump to version 2.5

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 40b5b8a3220d6708a7011db9992863ef3f11b48a)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 233cae2c9e6ba0efacd47cec633ecf6d4dfa6205
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun May 25 17:34:57 2014 -0700

    Intelli_plug: add wakeup cpufreq boost for quicker wakeup

    bump version to 2.4

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit b5d8599e9e38d77f79a9d7e41238992cc775ec38)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 17e122a040762d33dbce50cddad0aa74c6f0b520
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Mar 31 21:35:34 2014 -0500

    intelliactive: make touch boost interface generic

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

    Conflicts:
    	drivers/cpufreq/cpufreq_intelliactive.c

    (cherry picked from commit 9075a824075ff56adb53f3aa4aa4710bd7a54557)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	drivers/cpufreq/cpufreq_intelliactive.c

commit f317af295ec7d608caa703f595d52b90ef0a8d39
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Mar 31 20:43:58 2014 -0500

    intelli_plug: code review clean up

    set def sampling rate to something sane rather than zero (instantaneous
    rescheduling is not good if intelli_plug is disabled)

    make touch input more generic rather than tied to a touchscreen driver

    remove unused code

    thanks to @dorimanx for the code reviews and suggestions

    bump to version 2.3

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

    Conflicts:
    	arch/arm/mach-msm/intelli_plug.c

    (cherry picked from commit f15d93104f802cb6911dd4bcda3d40d3066db727)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/intelli_plug.c

commit 8f4c1f094022b22b83ed15e89b3a95cd55b198cf
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu Mar 20 07:04:26 2014 -0700

    intelliactive: add upstream patches

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit ca59b63454be7582074a17ded66dcaebf770e264)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit a9eb4943b11f3a21c10b72b4b3ed58393093d968
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Mar 15 19:39:55 2014 -0700

    Intelli_plug: special dual-core adaptation for all dualcore SOCs

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 93fba084b4c67cc729251c4868bfee0e48e8fc50)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/Kconfig

commit 475775f26f43d32efcb487731a745d2fa6d0a8ef
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Mar 15 19:05:25 2014 -0700

    intelli_plug: switch to use dedicated high priority workqueue

    from the shared global workqueue.  This should prevent hang ups while the
    global workqueue is busy and cleaned up some logic issues.

    give input boost its own workqueue

    bump to version 2.2

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 368d1b5341041be0082c98058d7b87273172776b)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 0d114a44dd4a41270a663237752c529d1bf9bb62
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Feb 15 13:26:45 2014 -0800

    intelliactive: fix race condition when unregistering input handlers

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 7c56fb04f72fc71030af0a0bed0c4b75e6b286a5)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit edac335852aa985a26323092e1aaebc559328b72
Author: thirdzcee <thirdzcee@gmail.com>
Date:   Thu Sep 25 08:23:25 2014 +0800

    intellidemand/active: add D2 touch input driverboost

    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 5f17935c5220f1bc5d30b1e6b9d6ad3906be82ae
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Feb 10 01:38:42 2014 -0800

    intelliactive: tune for dual core operations

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 759cb899d692f10daea916cc9e48f01d6f00f8ee)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit aadd2b94bc48c124eaeeeea50a6bbc0ad16944b5
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Feb 10 01:37:10 2014 -0800

    intellidemand: tune for dual core operations

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit a146b95448b5a4369d399da109ad853944b9af2d)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 568ab5451d971fa033ad1c5b700f408d375b595e
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Feb 10 01:35:22 2014 -0800

    intelli_plug: tune for dual core mode

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 431d37886d98ffe391e2fb1db0d063758943f159)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit f546deb38f24f48de968b15b7e278d203a13bf93
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun Jan 19 20:36:10 2014 -0800

    cpufreq: intelliactive: initial coding and introduction!

    intelliactive is based on Latest Google Interactive cpufreq governor from
    Google.  The original Interactive provides smooth UI operations but suffers
    slight battery drain due to its aggressive policies.  Intelliactive is an
    improvement built on top of it.

    It has the following enhancements added:
    1. self-boost capability from input drivers (no need for PowerHAL assist)
    2. two phase scheduling (idle/busy phases to prevent from jumping directly to
       max freq
    3. Checks for offline cpus and short circuits some unnecessary checks to
       improve code execution paths
    4. removed trace calls

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

    Conflicts:

    	drivers/cpufreq/Kconfig

    (cherry picked from commit 2f3c4b4eb38460a89d0dc44e68223fb92fc62e77)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 7b8cbbee37f502d593d834a0d0ea6baf411c4b7f
Author: thirdzcee <thirdzcee@gmail.com>
Date:   Thu Sep 25 08:12:33 2014 +0800

    intelli_plug.c: enable touch boost for D2 touchscreen

    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 88c03262f1e7a8c694ce3d731aec0ecf647fc91f
Author: Paul Reioux <reioux@gmail.com>
Date:   Tue Nov 12 00:31:09 2013 -0600

    Cpufreq: create/remove percpu sysfs nodes once

    On cpu hotplug on/off, percpu "cpufreq" sysfs node and it's
    sub nodes are freshly created and removed. This increases
    cpu up/down latency.

    Create percpu "cpufreq" sysfs node and it's sub nodes in driver
    registration and remove it in unregistration. This decreases
    cpu up/down latency significantly.

    Change-Id: I5c2b02e74de0ae4fe08dedc959bd7402cd9b7aa5
    Signed-off-by: Puneet Saxena <puneets@nvidia.com>
    Reviewed-on: http://git-master/r/146812
    (cherry picked from commit 298382285677fa791098d117ccc0a0a3d9ab0f9a)
    Reviewed-on: http://git-master/r/219379
    Reviewed-by: Automatic_Commit_Validation_User
    Reviewed-by: Sachin Nikam <snikam@nvidia.com>

    modified for use on Mako by faux123

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit a220115114d215bd0df953bb13232779eb053bdf)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	drivers/cpufreq/cpufreq.c

commit a95da2d98a1bc9c74566597a86e1e5335c7ab7a0
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu Dec 5 10:21:57 2013 -0600

    intelli_plug: tune for tablet devices

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit ec52ee4bf26df3209dc2aa87fe3db497c5d85bd9)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 719d3e99f0e565d41927dfd01c36b089c975bf75
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Nov 20 03:54:39 2013 -0600

    intelli_plug: performance tune-up continued...

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 1a6c12b34dbd0d7b94dee78d386e899e7d66d13b)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 8b74a834081facca06d3798eb192c6da45323000
Author: Paul Reioux <reioux@gmail.com>
Date:   Tue Nov 12 19:03:28 2013 -0600

    intelli_plug: use a context safe function call instead

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 06ba558985713de332836741a9d808e411f6fde6)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 29fe283217c4ead053fcf628bb95f9aa34c35f89
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Nov 13 16:15:06 2013 -0600

    intelli_plug: add touch input logic

    changed intelli_plug sampling rates and bump to version 2.0

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit b360d049dba90dd4ec6488cdb6ab53b09788a315)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit a8c56a980293076ceff06547e3d5abb350bd40c2
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Oct 26 22:52:37 2013 -0500

    intelli_plug: add dynamic load sampling rate logic

    Add dynamic sampling logic based on load. If load is high and required more
    than 2 cores, increase the sampling rate for a duration of 3 seconds to help
    manage the load better during this time.  Once duration expires, revert back
    to lazier sampling rate for better batter performance.

    bump to version 1.8

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 97f590277205d3243ee02c6b1aba267d6166505b)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 2a9510f4f1c1902398746aede44b307cc91bcaf8
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Nov 4 12:38:48 2013 -0600

    intellidemand: enable touch boost for new touch screen device

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 456982a5bd31f60ded74b612a1347c184d217615)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit aca4b44eefdc7037b5d22d2f7efebda6bbc042ea
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Sep 4 21:42:07 2013 -0500

    drivers/cpufreq/cpufreq.c: re-enable cpu policy restore

    original bug FINALLY fixed by:
      cpufreq: Save user policy min/max instead of policy min/max during hotplug

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 14394562fa53035e57e6bea1dc397facef2fa12d)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 1c2bf2f7de5777b3567f681e5aa305ba317f5dd0
Author: Paul Reioux <reioux@gmail.com>
Date:   Tue Jun 4 02:36:19 2013 -0500

    Intellidemand: limit min cpu perflock to boot cpu only

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit d515b775b40a9f148bc1e2cb08190f400c5fb720)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit cb695fa37bf79a2dcbc1346807986fa730835d1a
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon Jun 24 14:20:57 2013 -0500

    intellidemand: re-enable performance lock option

    with low freq enabled kernels, minimum performance lock will help music
    playback to be smooth and glitch free

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 381f02c157cf749db79efdf1e92d141dca0698c6)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 53df3affe51be3af96632de3f9b2960064be1d56
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu May 23 22:07:04 2013 -0500

    intellidemand: enable sec_touchscreen input boosting

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 996fadc744bada6864a20788cc98d5f5665996f0)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 14937af93bf011a7d6dcc0d594fab6e8daf84c71
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu May 23 20:52:12 2013 -0500

    init/Kconfig: decouple DEBUG_KERNEL from EXPERT settings

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit a38cbf25b9edc4dc2a2a2aff022e3e8636704350)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit d7befa4fd35388115d12c2857ab760385e73bfd9
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu May 23 13:13:48 2013 -0500

    intellidemand: tweak optimal for krait 600 series

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit f208ecb75bb69bdfa3b1df8d7c0428961bdc71c8)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 92c6e53edf7a46b76ce0aaaa53ca70b725e59ad9
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu May 23 11:48:57 2013 -0500

    arch/arm/mach-msm/cpufreq.c: reduce dmesg log spam

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 525ce4e2f1052ddd7a7cfbb36d483b9b1bf7633c)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 4806de542cdd45d17a6d4a1b831fd2025640a4f3
Author: Paul Reioux <reioux@gmail.com>
Date:   Mon May 20 01:43:57 2013 -0500

    cpufreq: intellidemand: Fix optimal_freq logic on ramp down

    When ondemand governor decides to ramp down the frequency, the missing
    check for frequency being lower than optimal_freq was causing frequency
    to be ramped down to optimal_freq even if the frequency decided by ondemand
    governor was higher.

    Change-Id: I00f9ae4c61ccda4039f3338dee2c29b8cb790be4
    Signed-off-by: Veena Sambasivan <veenas@codeaurora.org>
    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 3a3c851783a42bc1cdd2052e66966ef13d0d9751)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit a33a7634718653046aab1ac0cf7c518ea5fbdc77
Author: faux123 <reioux@gmail.com>
Date:   Wed Apr 3 13:33:27 2013 -0500

    cpufreq: allow for low CPU clock policy when hotplugging new cores

    Signed-off-by: faux123 <reioux@gmail.com>
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/cpufreq.c

    (cherry picked from commit 1bdf49aa4e2b654a300fa008ef33fcd730d59249)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 89e7e733781142cf35ecd80f832d5be3c087b446
Author: Paul Reioux <reioux@gmail.com>
Date:   Thu Apr 25 13:41:11 2013 -0500

    intelli_plug: code clean up and minor bug fixes

    bump to version 1.6

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 11007acd2a010ee6dcbb2f669fbe762bc5d7c571)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 72503226e7ba6c0ebe8e432b87be4a35cd2b48ed
Author: faux123 <reioux@gmail.com>
Date:   Wed Mar 6 19:41:34 2013 -0600

    intelli_plug: slow down hotplug activity from 50ms to 200ms

    this will reduce the hotplug chaos which may in turn save more power

    Signed-off-by: faux123 <reioux@gmail.com>
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/intelli_plug.c

    (cherry picked from commit a4ebda58088512896996233fdc761d4bd694195a)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 292b7f29f5492ecceba6cef0913f1e9d20f5acf8
Author: faux123 <reioux@gmail.com>
Date:   Fri Feb 22 14:14:01 2013 -0600

    intelli_plug: use mp_decision to reduce online persistence count for cores

    this should bring down the cores faster when run queue is low
    also optimized code a bit using local vars

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 2ac1076b60bc8e38cc6bd3b4b34160ecec71f947)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 03552edd67ca6660faa16bfc0cc27172ddc52ade
Author: faux123 <reioux@gmail.com>
Date:   Wed Feb 20 20:43:39 2013 -0600

    wip: intelli_plug: change logic for better benchmark performance

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 49d6b04d9d5dca6ca542ea25711ae6e47f142eb9)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 902444dbf560b3ab6136c7f88d69671796e6f7e5
Author: faux123 <reioux@gmail.com>
Date:   Wed Feb 20 20:08:16 2013 -0600

    intelli_plug: bump threshold slightly for better response

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 935d811fe595c09d0e9695d59e48f77541880c27)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit a1e8e72288cd355d72a139da9df8eade7b7be672
Author: faux123 <reioux@gmail.com>
Date:   Wed Feb 20 13:22:34 2013 -0600

    intelli_plug: tweak mp_decsion parameters and remove unused logic

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 25b03ba31338f1f145a0946d935d351de7a82115)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit b76c732a3238f96cf1eb526bf86edba33348ac07
Author: faux123 <reioux@gmail.com>
Date:   Mon Feb 18 16:36:51 2013 -0600

    intelli_plug: use mp_decision() algorithm for core 3 and 4

    This replaces the simplistic check for run queue thresholds with a more
    sophisticate algorithm with time awareness

    bump version to 1.3

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit bceb1d810a07b52661d7ce0aa91bc998b004be1c)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 634eb8cc978805a81cd97e1fee4690d39e278d21
Author: faux123 <reioux@gmail.com>
Date:   Mon Feb 18 13:46:02 2013 -0600

    intelli_plug: use rq_stats to help detect artificial or constant loads

    benchmarks often create fake / artificial loads at a constant rate.  These
    type of loads are not detected corectly by run average algorithms. Use
    the run queue stats to help detect these cases and bring up the cores in
    correspondence.

    bump version to 1.2

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 28c88fea2f071a4d4ce051adb3f53ed2d0e24aea)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit e24c46244895e598e0cd538767e4ba98b4081bfd
Author: faux123 <reioux@gmail.com>
Date:   Tue Jan 22 12:47:23 2013 -0600

    intelli_plug: make it gcc-4.6.x eabi compatible :p

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 116a8f48ec5bdc7c20e74cfa5414d74a3382f708)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit b1d64ca02e07520f3487c69278b9f9ae8e1188f9
Author: faux123 <reioux@gmail.com>
Date:   Fri Jan 11 21:28:43 2013 -0800

    intelli_plug: increase cores on persistence

    also replace hardcoded values with Macros for ease of updating later

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit a94fd0c5ab29d3be4edab7da05ed80ee956112cc)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 8c918081e03cd5b57dc20c495ae99ea6b49cb0fa
Author: faux123 <reioux@gmail.com>
Date:   Mon Jan 7 19:33:55 2013 -0600

    intelli_plug: tweak for faster wakeup from suspend

    bump version to 1.1

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 8e4ad23629c813c0f8b76da8352e2d255ab6d99f)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 007743834e877c1359c4ceadf31cbd7ab7fa3699
Author: thirdzcee <thirdzcee@gmail.com>
Date:   Thu Sep 25 06:55:40 2014 +0800

    workaround for now, not a fix.

    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 03cb2cab59339704d6bc4996ff735c2abcc2411a
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun Oct 20 22:44:56 2013 -0500

    intelli_plug: intelligent hotplug cpu driver with eco mode

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

    Conflicts:

    	arch/arm/mach-msm/Makefile

    (cherry picked from commit 02a7240c8257050feefa7b0c0cca68740c71a5d5)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/Kconfig
    	arch/arm/mach-msm/Makefile

commit 79bc8afb87ed1fa64d194a835e7572d83b1d726a
Author: faux123 <reioux@gmail.com>
Date:   Sun Apr 21 23:42:47 2013 -0700

    overall_stats: forward port to kernel 3.4+

    by replacing deprecated functions with native add/sub for 64bit data types

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 10efa65e7e66b76e3a911864d52ade65111da85c)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 52b53a118f92960a5ae619b9082b5cd6877cb044
Author: faux123 <reioux@gmail.com>
Date:   Sun Apr 21 22:31:24 2013 -0700

    overall_stats: make dual/quad core stats configurable via meunconfig

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 309dfcf07be4452df4832e310b4c529e9dfab8cb)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 5ab0a9d53a46c597d22669449eeff53f95f42159
Author: faux123 <reioux@gmail.com>
Date:   Sun Apr 21 23:08:51 2013 -0700

    overall_stats: add overall stats for all available cores

    this is much more accurate stats tracking than just displaying core 0's
    stats from most other kernels

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 93123712bed6dc2a7d6c5f8458625a22b4fc217d)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	drivers/cpufreq/cpufreq_stats.c

commit c9b271340ca32123cd2683db26e5a8109b595e83
Author: faux123 <reioux@gmail.com>
Date:   Thu Mar 21 01:43:13 2013 -0500

    cpufreq: intellidemand: Set MIN_LATENCY_MULTIPLIER to 20

    Currently MIN_LATENCY_MULTIPLIER is set defined as 100 and so on a system with
    transition latency of 1 ms, the minimum sampling time comes to be around 100 ms.
    That is quite big if you want to get better performance for your system.

    Redefine MIN_LATENCY_MULTIPLIER to 20 so that we can support 20ms sampling rate
    for such platforms.

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit cc5518d5621a0a3eab9f7499e5242b0403eb0cf5)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 4484b4175c9078974694c152a9996f107ff0e7aa
Author: faux123 <reioux@gmail.com>
Date:   Thu Mar 14 11:17:57 2013 -0500

    intellidemand: fix permission for sampling_rate as well

    to work with Android's PowerHAL

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit fd4c28cd16ec407d3992c8f6f98d9bd0692e47ce)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 680e22db57cd7dd4a9ce4f6b9dfd195f92f28005
Author: faux123 <reioux@gmail.com>
Date:   Thu Mar 14 02:21:02 2013 -0500

    intellidemand: change permission for boostpulse from root to system

    for use with Android PowerHAL

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 23d1520c8305a4d0748523d3a6374fc0f5dc89c4)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit c71e23cac2178e71b7b1a63b577db94b8e164a74
Author: faux123 <reioux@gmail.com>
Date:   Wed Mar 13 18:39:33 2013 -0500

    intellidemand: change boost tunable scope from global to local

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 322a0c8c1630e544a41b78553b354a7a50b83364)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 44ea082058936287f8cb7cb7fabd868806df1535
Author: faux123 <reioux@gmail.com>
Date:   Wed Mar 6 18:51:19 2013 -0600

    intellidemand: allow clean compilation when LMF is disabled

    bumped version to 4.2

    Signed-off-by: faux123 <reioux@gmail.com>
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	arch/arm/mach-msm/cpufreq.c

    (cherry picked from commit 76957ef57ce69bf4f4bc8284121f1cfe118f3667)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 454da72fdd405d952eaecbc5ce2e6eaeffbbc5b7
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun Apr 28 17:09:24 2013 -0500

    arch/arm/mach-msm/cpufreq: remove deprecated logic

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 5080f2df5b83d11e058cdd8cb3bd8b328bb5f8b1)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 61c33b87eb4808794eb3849959b1535da96e1b84
Author: faux123 <reioux@gmail.com>
Date:   Sun Mar 3 10:21:27 2013 -0600

    msm: cpufreq: make the gov stop part fully atomic

    In the function cpufreq_governor_dbs, the case CPUFREQ_GOV_STOP
    is not completely atomic. The removal of sysfs is outside the
    critical path. If a START/STOP done frequently from user space
    then there is chance of adding the sysfs interface before removal.
    This creates a warning from sysfs saying creating an already
    existing entry.

    Also once it fails to create, cpufreq_governor_dbs returns with
    error code. The dbs_enable value is incremented which is not
    rolled back and cpufreq core tries to set the old
    governor. This might create further problems.

    Hence the removal of sysfs entry should happen in the critical
    path.

    CRs-fixed: 440969
    Change-Id: I98891756caf2ce0b85e39e9b4f58034af1ed97ce
    Signed-off-by: Venkat Devarasetty <vdevaras@codeaurora.org>
    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 35bbea725192f514170edf37f52ad42f35cc21f6)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit e58fa7ed571f6508f8e2412da8cfb53c457f41fb
Author: faux123 <reioux@gmail.com>
Date:   Sun Dec 30 11:52:52 2012 -0800

    intellidemand: Don't update the policy->cur upon cpufreq driver failure

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit ae3a9b480e98f7ef8ec765383c06862226da1837)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 86c62c792f88ca0c4cafa727e1f8538439b0b180
Author: faux123 <reioux@gmail.com>
Date:   Fri Dec 28 20:35:46 2012 -0800

    intellidemand: remove unused min performance lock defines

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit bd4148506d9453b958996ed00000fe02fd98326d)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit ffea2dca0ccf6c4edd6afde1a1a266e82e6c57b2
Author: faux123 <reioux@gmail.com>
Date:   Fri Dec 28 20:26:35 2012 -0800

    intellidemand: remove eco mode option (replaced by intelli_plug)

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit e1d8dab90ac96d107daad21f80506228944b7599)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 8dcfbbd3337929c1ab2c599d3432b6926be61117
Author: faux123 <reioux@gmail.com>
Date:   Fri Dec 28 20:16:30 2012 -0800

    intellidemand: remove cpu cores autoplug capability (replaced by intelli_plug)

    Signed-off-by: faux123 <reioux@gmail.com>
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	drivers/cpufreq/Kconfig

    (cherry picked from commit 1289f5f79313f7d93b6a1db9d71b5f31ab42eb0d)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 44211f129e88faebe2af56b49392896fa75ae1e6
Author: faux123 <reioux@gmail.com>
Date:   Wed Dec 19 22:56:46 2012 -0800

    intellidemand: add default values for dbs sync and optimal tuneables

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 378839797d4e52bde28b52b09e70239e64163064)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit debffa7ca8a970a9503e66b2613b9f215844b934
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Dec 19 22:35:49 2012 -0500

    cpufreq: enable sibling cpu policy sharing

    disable Qualcomm's cpu policy restore (conflicts with sibling sharing)

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 75c11af9894136b0e80398d170a573431878e626)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 018b1edb6111dc80ebb5239b8cde7ebdfbe48286
Author: Paul Reioux <reioux@gmail.com>
Date:   Wed Dec 19 20:43:57 2012 -0500

    intellidemand: give intellidemand's cpu_dbs_info its own name

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 987e90e0d384cc13f793a3113acd33e5a8715cdd)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 995c56caf1d9d3dacee417a170260ac888e04418
Author: faux123 <reioux@gmail.com>
Date:   Tue Dec 18 23:07:55 2012 -0800

    intellidemand: Add support to consider other cpu load when scaling frequencies

    Currently only current cpu load is considered when frequency scaling.
    As a side effect of this when scheduler migrates a thread to a slower
    core, the execution time increases unexpectedly.

    The new algorithm not only considers current cpu load for frequency
    scaling, but also takes into account load of other online cpus. The
    treshold for this can be controlled using up_threshold_any_cpu_load.
    When the up_threshold_any_cpu_load is crossed in any cpu then the
    current cpu is set to sync_freq.

    Also, when more than one cpu is online a two step ramp-up mechanism
    is used. When the up_threshold_multi_core is crossed the cpu is ramped
    up to optimal_freq which is less than policy->max and set to a power
    friendly value.

    Change-Id: I64bed1b142cde1f239e73aa1f78981c78aaf59ce
    Signed-off-by: Narayanan Gopalakrishnan <nargop@codeaurora.org>

    intellidemand: Fix kernel warning in cpufreq_governor_dbs

    GOV_STOP event destroys the timer_mutex and is not initialized back
    upon GOV_START event.
    The Kernel complains at mutex_lock(during GOV_LIMITS event) after
    mutex_destroy.

    [<c0014918>] (unwind_backtrace+0x0/0x11c)
    [<c007c004>] (warn_slowpath_common+0x4c/0x64)
    [<c007c034>] (warn_slowpath_null+0x18/0x1c)
    [<c079eef8>] (__mutex_lock_slowpath+0x130/0x3c4)
    [<c079f1ac>] (mutex_lock+0x20/0x3c) from [<c0540900>]
    [<c0540900>] (cpufreq_governor_dbs+0x3c8/0x468)
    [<c053d500>] (__cpufreq_governor+0x90/0xe0)
    [<c053d774>] (__cpufreq_set_policy+0x224/0x258)
    [<c053da58>] (cpufreq_add_dev_interface+0x2b0/0x308)
    [<c053e784>] (cpufreq_add_dev+0x500/0x56c)
    [<c079247c>] (cpufreq_cpu_callback+0x88/0x9c)
    [<c07a2ca8>] (notifier_call_chain+0x38/0x68)
    [<c007ded0>] (__cpu_notify+0x28/0x40)
    [<c0790024>] (_cpu_up+0xe4/0x118)
    [<c0790024>] (cpu_up+0x64/0x80)
    [<c0765840>] (store_online+0x48/0x78)
    [<c038d0c8>] (dev_attr_store+0x18/0x24)
    [<c017be40>] (sysfs_write_file+0x108/0x13c)
    [<c012cdfc>] (vfs_write+0xb0/0x128)
    [<c012d034>](sys_write+0x38/0x64)

    Change-Id: Ie2a796b17209243de731ccf2ab04b7f9e7048df8
    Signed-off-by: Anji Jonnala <anjir@codeaurora.org>

    Adapted for Intellidemand from CAF reference

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 69463251c01dc357ef9fea03b8b3928399108b8a)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 6c39f8cf0c5ec038931b2aace973c9819c526d8e
Author: faux123 <reioux@gmail.com>
Date:   Tue Dec 18 22:43:52 2012 -0800

    cpufreq: Avoid using smp_processor_id() in preemptible context

    Even though this work item runs on only one cpu at a time (due to
    queue_work_on()) it is possible for the work item to be preempted
    and so use of smp_processor_id() is illegal.

    BUG: using smp_processor_id() in preemptible [00000000]
    code: kworker/3:1/4162 caller is dbs_refresh_callback+0xc/0x188
    [<c00151b0>] (unwind_backtrace+0x0/0x120) from [<c0279058>]
    (debug_smp_processor_id+0xbc/0xf0)
    [<c0279058>] (debug_smp_processor_id+0xbc/0xf0) from [<c0454b54>]
    (dbs_refresh_callback+0xc/0x188)
    [<c0454b54>] (dbs_refresh_callback+0xc/0x188) from [<c0087290>]
    (process_one_work+0x354/0x648)
    [<c0087290>] (process_one_work+0x354/0x648) from [<c0089754>]
    (worker_thread+0x1a8/0x2a8)
    [<c0089754>] (worker_thread+0x1a8/0x2a8) from [<c008e480>]
    (kthread+0x90/0xa0)
    [<c008e480>] (kthread+0x90/0xa0) from [<c000f438>]
    (kernel_thread_exit+0x0/0x8)

    The intent of the code is to determine which CPU this work item
    is running on, which we can easily do by passing that information
    in a wrapper struct around the work struct. Do this so we avoid
    this problem.

    Change-Id: I05ca0ff2b3cbaa239930463ea0760e3e9d75145f
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    adapted for Intellidemand from CAF reference

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 3992a0663798f4427fd9663f063b52d17cc7d362)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit b7155c061e505f07a5eefde81ca4e8f8945f9cc6
Author: faux123 <reioux@gmail.com>
Date:   Sun Dec 16 13:11:51 2012 -0800

    Intellidemand: adjust the nr_run hysteresis for better UI response

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 84bfcbf8f6b87e8b794af0d3e74b83fc3bc465c6)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 27cc1e37cf765000b62a696879fecccf620b3bf5
Author: faux123 <reioux@gmail.com>
Date:   Sat Dec 8 00:03:05 2012 -0800

    intellidemand: tweak for not using min performance lock

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 6e98f97bd33e7d4c4993822ee7b897e7e0d70818)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit b152aa69081737700a6c90366571e7745c34816b
Author: faux123 <reioux@gmail.com>
Date:   Wed Dec 5 19:59:42 2012 -0600

    intellidemand: add eco mode (dual core operations) bump version to 4.1

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit b56ca65e0c88180ed565d2518299c0021ab9ab30)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 5ac8aceb8a56fdabe0f2b00dc1b1f269f062832b
Author: faux123 <reioux@gmail.com>
Date:   Wed Dec 5 06:19:54 2012 -0800

    intellidemand: increase boost duration to 2.5 seconds from 1.5

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 58388a934702cdba50ca1e1b9df27ce6d6a518ec)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 46cf341b8dce2eada086a7792e6f390bf6db3126
Author: faux123 <reioux@gmail.com>
Date:   Sun Dec 2 10:47:31 2012 -0800

    Intellidemand: put cores 1~3 to sleep while screen is off

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 29d005861b116c1c05b282603a6c88ed9a537818)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit c2d1b2a7fe4a53447a2124f465606c91b03b4661
Author: faux123 <reioux@gmail.com>
Date:   Sun Nov 25 08:12:27 2012 -0800

    intellidemand: code derps clean up!

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 48ef6d76dc128ab3e33b0df17893faec0c4ae440)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 96d4a0d68b001c67578eec18b9b6b31c7a8fadb7
Author: faux123 <reioux@gmail.com>
Date:   Sat Nov 24 14:56:18 2012 -0800

    Intellidemand: update for quadcore operations. bump version to 4.0

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 2b86ac135297a551bd185a63dd6867d0714e9cf0)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 4f12f1797bfd6a3419b6f3d8e1b3fb6070ae665d
Author: faux123 <reioux@gmail.com>
Date:   Thu May 9 15:06:22 2013 -0700

    intellidemand: add minimum cpu performance lock

    a minimum cpu frequency performance lock is add to ensure smooth
    operations when only 1 core is active

    Signed-off-by: faux123 <reioux@gmail.com>
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:
    	drivers/cpufreq/Kconfig

    Conflicts:

    	drivers/cpufreq/Kconfig

    (cherry picked from commit 6f4f88e4095b5433d988e0d9d59a8d479160d257)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 389a6f17e3a33d8c4b7995e8af8ea69f7acc47ae
Author: faux123 <reioux@gmail.com>
Date:   Sat Nov 24 14:20:10 2012 -0800

    intellidemand: add a run queue persistence to determine browsing state

    persistence will allow for better browsing state detection rather than just
    purely based on run queue depth alone

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit 30714463f79cda811eace4ead5aab7f774e75404)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 62274a7ebdfc17d9f2a96d92de29228489fd4aaf
Author: faux123 <reioux@gmail.com>
Date:   Sat Nov 24 14:17:12 2012 -0800

    intellidemand: add bug fixes

     - Fix crash input event handler on governor switch
     - Fix panic when setting sampling rate

    Signed-off-by: faux123 <reioux@gmail.com>
    (cherry picked from commit ab522f3c8d202ff758981c33deeacdfca481129f)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit a8ae57d422e9c5b6a3c2017a6a429a0ca53466eb
Author: faux123 <reioux@gmail.com>
Date:   Sat Nov 24 14:15:27 2012 -0800

    intellidemand: Add boost pulse capability

    Boost pulse increases UI performance by increasing CPU freq and
    reduce sampling time.

    forward ported for Linux 3.4 for use on Mako
    Signed-off-by: faux123 <reioux@gmail.com>

    (cherry picked from commit aca14f363ebd384bdc7f048d09a2b768ea7f40b0)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 80a6e00ac5e6357b064e41bdd6c85bd3cc3d450a
Author: Paul Reioux <reioux@gmail.com>
Date:   Sat Nov 2 18:38:31 2013 -0500

    cpufreq/cpufreq_intellidemand: intellidemand cpufreq governor (version 4.0)

    Intellidemand is inspired by ondemand governor. Its main features are:

     - auto cpu hotplugging based on runnable thread average calculations
     - detection of browsing mode (long screen on activities with moderate run
       queue depth =< 45 )
     - limit max frequencies when in browsing mode to conserve battery for long
       duration tasks

    Browsing State Determination:
     1- Browsing state is enabled as power-on default. Browsing state is disabled
        when run queue depth is > 45 (very high instantaneous spikes)

    Browsing State Limit Max Freq Logic (sliding window algorithm):
     1- While Screen is ON > 3 min, and average load of the CPU is < 35%, then
        CPU Max frequencies will remain power-on default
     2- While Screen is On, if average CPU load > 35%, both CPUs max frequencies
        will be limited to a lower user configurable max value
     3- While Screen is On, After both CPUs' Max is limited to lowered max, when
        the average CPU load has dropped down to less than < 25%, then both CPUs
        Max freq will be restored to back to power-on default

    Runnable Thread Auto-hotplug (fast hotplug / slow unplug algorithm):
     1- When average number of running thread is < threshold, 2nd cpu will be
        unplugged.
     2- When > threshold, 2nd cpu will be hotplugged.
     3- The logic applies a fast hotplug and slow unplug algorithm so 2nd core
        will stay enabled longer to help deal with performance spikes

    changes from Ver 2.0 -> Ver 3.0:
      - remove GPU Busy dependency for browsing state detection (this will make
        the governor more portable to other platforms without specific GPU
        architecture knowledge)

    dependencies:
      -- Qualcomm's run queue average logic (SOC independent logic)
      -- TI's runnable thread average logic (SOC independent logic)

    forward ported to Linux 3.4 for use on S-800

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit fa0c410abd257283653ba98ff5631de24d9a2a53)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit a5ffd98d67d9befee79bef319f8a191f7ba68597
Author: faux123 <reioux@gmail.com>
Date:   Thu May 9 14:47:50 2013 -0700

    scheduler: Re-compute time-average nr_running on read

    Re-compute time-average nr_running when it is read. This would
    prevent reading stalled average value if there were no run-queue
    changes for a long time. New average value is returned to the reader,
    but not stored to avoid concurrent writes. Light-weight sequential
    counter synchronization is used to assure data consistency for
    re-computing average.

    Change-Id: I8e4ea1b28ea00b3ddaf6ef7cdcd27866f87d360b
    Signed-off-by: Alex Frid <afrid@nvidia.com>
    (cherry picked from commit 527a759d9b40bf57958eb002edd2bb82014dab99)
    Reviewed-on: http://git-master/r/111637
    Reviewed-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
    Tested-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
    Reviewed-by: Automatic_Commit_Validation_User
    Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
    Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>

    forward ported to Linux 3.4 for use on Mako

    Signed-off-by: faux123 <reioux@gmail.com>
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

    Conflicts:

    	kernel/sched/sched.h

    (cherry picked from commit 0013bcdbdffe0c0dbc618f5c2038fa958eed678e)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 3ab4613537e2840810015b4e395aa4a27cfa0d57
Author: Alex Frid <afrid@nvidia.com>
Date:   Wed May 16 14:27:13 2012 -0700

    proc: enhance time-average nr_running stats

    Add time-average nr_running to loadavg printout

    Bug 958978

    Change-Id: I5c6904efb52a86f4964eb66c1576fc91f60f5b1d
    Signed-off-by: Alex Frid <afrid@nvidia.com>
    (cherry picked from commit 86f3642cc44a69d1e4798719bd9182cd6923f526)
    Reviewed-on: http://git-master/r/111636
    Reviewed-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
    Tested-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
    Reviewed-by: Automatic_Commit_Validation_User
    Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
    Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
    (cherry picked from commit d41526ca50828f6e4feca16e3620ea21db67790b)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

commit 3cd51257cbba7c96de654a3a942555d1728c3c0a
Author: Paul Reioux <reioux@gmail.com>
Date:   Sun Oct 20 22:33:09 2013 -0500

    scheduler: compute time-average nr_running per run-queue

    Compute the time-average number of running tasks per run-queue for a
    trailing window of a fixed time period. The detla add/sub to the
    average value is weighted by the amount of time per nr_running value
    relative to the total measurement period.

    Change-Id: I076e24ff4ed65bed3b8dd8d2b279a503318071ff
    Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
    (cherry picked from commit 3a12d7499cee352e8a46eaf700259ba3c733f0e3)
    Reviewed-on: http://git-master/r/111635
    Reviewed-by: Automatic_Commit_Validation_User
    Reviewed-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
    Tested-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
    Reviewed-by: Peter Boonstoppel <pboonstoppel@nvidia.com>
    Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>

    forward ported to Linux 3.4 for use on S-800

    Signed-off-by: Paul Reioux <reioux@gmail.com>
    (cherry picked from commit 601604e8194c6b8ff39b58d0712bc1ed5f00f66c)
    Signed-off-by: thirdzcee <thirdzcee@gmail.com>

Signed-off-by: thirdzcee <thirdzcee@gmail.com>