intelli-thermal v2: initial adaptation

Intellithermal 2.0 is based on the latest Qualcomm thermal driver
adapted for
in-kernel use and control.  Newer MSM8974+ chipsets should use this
driver
going forward
cpufreq: CPU max. hardlimit v2.0a (Yank555.lu)

- fixed wakeup_kick_freq must be between screen on min and max (instead
of screen on max and screen off max)

Thanx to zancum for reporting this !

New SysFs Interface :

* /sys/kernel/cpufreq_hardlimit/scaling_max_freq_screen_on (rw)
*
* set or show the real hard CPU max frequency limit when screen is on
*
* /sys/kernel/cpufreq_hardlimit/scaling_max_freq_screen_off (rw)
*
* set or show the real hard CPU max frequency limit when screen is off
*
* /sys/kernel/cpufreq_hardlimit/scaling_min_freq_screen_on (rw)
*
* set or show the real hard CPU min frequency limit when screen is on
*
* /sys/kernel/cpufreq_hardlimit/scaling_min_freq_screen_off (rw)
*
* set or show the real hard CPU min frequency limit when screen is off
*
* /sys/kernel/cpufreq_hardlimit/wakeup_kick_freq (rw)
*
* set or show the wakeup kick frequency (scaling_min for delay time)
*
* /sys/kernel/cpufreq_hardlimit/wakeup_kick_delay (rw)
*
* set or show the wakeup kick duration (in ms)
*
* /sys/kernel/cpufreq_hardlimit/touchboost_lo_freq (rw)
*
* set or show touchboost low frequency
*
* /sys/kernel/cpufreq_hardlimit/touchboost_hi_freq (rw)
*
* set or show touchboost high frequency
*
* /sys/kernel/cpufreq_hardlimit/userspace_dvfs_lock (rw)
*
* 0 = allow changes to scaling min/max
* 1 = ignore (don't apply, but don't return an error)
* 2 = refuse (don't apply, return EINVAL)
*
* /sys/kernel/cpufreq_hardlimit/available_frequencies (ro)
*
* display list of available CPU frequencies for convenience
*
* /sys/kernel/cpufreq_hardlimit/current_limit_max (ro)
*
* display current applied hardlimit for CPU max
*
* /sys/kernel/cpufreq_hardlimit/current_limit_min (ro)
*
* display current applied hardlimit for CPU min
*
* /sys/kernel/cpufreq_hardlimit/version (ro)
*
* display CPU freq hard limit version information
cpufreq_limit: OC up to 2.5GHz (Yank555.lu)

- define MAX_FREQ_LIMIT at 2.5GHz as well
block : Zen I/O scheduler [yank555-lu]

Modified to remain consistent with updates for Note 4
block: fiops ioscheduler [yank555-lu]

Modified to remain consistent with updates for Note 4
cpufreq: add yankactive governor

Interactive governor with, fow now :

- hispeed_freq defaulting to lower than policy_max (1.73GHz)
- target_loads increased to 95
- min_sampling time reduced to 20ms
- above_hispeed_delay increased to 80ms
- timer_rate increased to 20ms

cpufreq: yankactive: Optimize sync_freq implementation

Don't let frequency drop below sync_freq if either load or
frequency among other cpus is above a certain threshold,
not necessarily both.

Credits : cyanogen
compress: add LZ4 support

decompressor: Add LZ4 decompressor module

Date	Tue, 26 Feb 2013 15:24:27 +0900

This patch adds support for LZ4 decompression in the Linux Kernel.
LZ4 Decompression APIs for kernel are based on LZ4 implementation
by Yann Collet.

LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
LZ4 source repository : http://code.google.com/p/lz4/

Signed-off-by: Kyungsik Lee <kyungsik.lee@lge.com>

v2:
- Clean up code
- Enable unaligned access for ARM v6 and above with
  CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
- Add lz4_decompress() for faster decompression with
  uncompressed output size

Signed-off-by: Paul Reioux <reioux@gmail.com>
lib: Add support for LZ4-compressed kernel

Date	Tue, 26 Feb 2013 15:24:28 +0900

This patch adds support for extracting LZ4-compressed kernel images,
as well as LZ4-compressed ramdisk images in the kernel boot process.

This depends on the patch below
decompressor: Add LZ4 decompressor module

Signed-off-by: Kyungsik Lee <kyungsik.lee@lge.com>

v2:
- Clean up code
- Use lz4_decompress() for LZ4-compressed kernel during boot-process

Signed-off-by: Paul Reioux <reioux@gmail.com>
arm: Add support for LZ4-compressed kernel

Date	Tue, 26 Feb 2013 15:24:29 +0900

This patch integrates the LZ4 decompression code to the arm pre-boot
code.
And it depends on two patchs below

lib: Add support for LZ4-compressed kernel
decompressor: Add LZ4 decompressor module

Signed-off-by: Kyungsik Lee <kyungsik.lee@lge.com>

v2:
- Apply CFLAGS, -Os to decompress.o to improve decompress
  performance during boot-up process

Signed-off-by: Paul Reioux <reioux@gmail.com>
lib: Add lz4 compressor module

From	Chanho Min <>

This patch adds support for LZ4 compression in the Linux Kernel.
LZ4 Compression APIs for kernel are based on LZ4 implementation
by Yann Collet and changed with kernel coding style.

LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
LZ4 source repository : http://code.google.com/p/lz4/
svn revision : r90

Two APIs are added:
lz4_compress() support basic lz4 compression whereas lz4hc_compress()
support
high compression or CPU performance get lower but compression ratio get
higher.
Also, we require the pre-allocated working memory with the defined size
and
destination buffer must be allocated with the size of lz4_compressbound.

Signed-off-by: Chanho Min <chanho.min@lge.com>

Signed-off-by: Paul Reioux <reioux@gmail.com>
crypto: Add lz4 Cryptographic API

From	Chanho Min <>

This patch adds support for lz4 and lz4hc compression algorithm
using the lib/lz4/* codebase.
Signed-off-by: Chanho Min <chanho.min@lge.com>

Signed-off-by: Paul Reioux <reioux@gmail.com>
lib/lz4/lz4_compress: fix macro usage error

Signed-off-by: Paul Reioux <reioux@gmail.com>
LZ4: compression/decompression signedness mismatch (v2)

LZ4 compression and decompression functions require different
in signedness input/output parameters: unsigned char for
compression and signed char for decompression.

Change decompression API to require "(const) unsigned char *".

v2: minor coding style fix.
Remove intellidemand governor
Remove "hardcoded" defaults for flexibility
cpufreq: CPU max. hardlimit v2.0a2 [Note 4]
Update intelli-thermal, Remove v1 solo build
Update yankactive for use with Note 4 kernel
Config: intelli-thermal, yankactive, LZ4