Disable triple buffering for all Samsung msm7x27 targets

Change-Id: I6beb7589e20596d00728ad4c2431238e51b94bec
Samsung msm_vibrator: ensure GPIO is requested

Change-Id: I124aa72c46bfa6e76374afcee0d5ba164838812c
Samsung shared board: reorganize and fix many issues

* Revert all whitespace "fixes" to make it easier to track against
  vanilla CAF revision
* Reorganize all I2C devices properly and merge all camera drivers
* Fix issues causing boot failure on tass, gio.
* Lots of fixes that were not properly merged from the various
  Samsung boards pre-merge.

Change-Id: Ica62f58ee7aae2aab19ef06cae1460063c9014a6
Update configs for zRAM on KitKat

Change-Id: I52f72fe8b2b809dfd3e0af30cb159be7d68f8812
add extra free kbytes tunable

Add a userspace visible knob to tell the VM to keep an extra amount
of memory free, by increasing the gap between each zone's min and
low watermarks.

This is useful for realtime applications that call system
calls and have a bound on the number of allocations that happen
in any short time period.  In this application, extra_free_kbytes
would be left at an amount equal to or larger than than the
maximum number of allocations that happen in any burst.

It may also be useful to reduce the memory use of virtual
machines (temporarily?), in a way that does not cause memory
fragmentation like ballooning does.

[ccross]
Revived for use on old kernels where no other solution exists.
The tunable will be removed on kernels that do better at avoiding
direct reclaim.

Change-Id: I765a42be8e964bfd3e2886d1ca85a29d60c3bb3e
Signed-off-by: Rik van Riel<riel@redhat.com>
Signed-off-by: Colin Cross <ccross@android.com>
(cherry picked from commit 6c3749439c710c18514cb6b4c629d3f3bac6ddd2)
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.

Change-Id: I482ee415d43c5aaa77d34946ae1fa0af5465b007
Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
(cherry picked from commit 44253b4e36e64727620f62c3f1b1b9fdc3d7f1d6)
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.

Change-Id: Ifcde45460c856644097bdeb612f0d68c6429f03c
Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
(cherry picked from commit 8f5392436414f18654cafa6432cc2bdfe0a06560)
lib/lzo: huge LZO decompression speedup on ARM by using unaligned access

Change-Id: I4dc172b2822504c3f2db1913ed9404e031861d55
Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
(cherry picked from commit c1e88f59a9a6210feef0456b0f0fd94ea8a63b48)
ARM: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU

Modern ARM CPUs can perform efficient unaligned memory accesses in
hardware and this feature is relied up on by code such as the dcache
word-at-a-time name hashing.

[pawitp: adapt to kernel 3.0]

Change-Id: I41559fc9255229e2601f4bef28aa8d48246156b7
Signed-off-by: Will Deacon <will.deacon@arm.com>
(cherry picked from commit 6ba8ac5e93facbfc98bcbec2f844114eb8c72d4b)
mm: remove compressed copy from zram in-memory

Swap subsystem does lazy swap slot free with expecting the page would be
swapped out again so we can avoid unnecessary write.

But the problem in in-memory swap(ex, zram) is that it consumes memory
space until vm_swap_full(ie, used half of all of swap device) condition
meet.  It could be bad if we use multiple swap device, small in-memory
swap and big storage swap or in-memory swap alone.

This patch makes swap subsystem free swap slot as soon as swap-read is
completed and make the swapcache page dirty so the page should be
written out the swap device to reclaim it.  It means we never lose it.

I tested this patch with kernel compile workload.

1. before

   compile time : 9882.42
   zram max wasted space by fragmentation: 13471881 byte
   memory space consumed by zram: 174227456 byte
   the number of slot free notify: 206684

2. after

   compile time : 9653.90
   zram max wasted space by fragmentation: 11805932 byte
   memory space consumed by zram: 154001408 byte
   the number of slot free notify: 426972

[akpm@linux-foundation.org: tweak comment text]
[artem.savkov@gmail.com: fix BUG due to non-swapcache pages in end_swap_bio_read()]
[akpm@linux-foundation.org: invert unlikely() test, augment comment, 80-col cleanup]
Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Artem Savkov <artem.savkov@gmail.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Cc: Konrad Rzeszutek Wilk <konrad@darnok.org>
Cc: Shaohua Li <shli@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Conflicts:
	mm/page_io.c

Change-Id: I8f11fb7f0391954435002e7f290352f311c907d4
(cherry picked from commit 40eeed8767d7fba76e45bc462165cb4962472658)
Merge "ARM: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU" into cm-10.2
zram & zsmalloc: update to msm-3.7 version

* Remove old zram version in drivers/zram
* Update zram & zsmalloc to latest unchanged msm-3.7 (will
  add compatibility in separate change).

Change-Id: I05bed573cc37a5b04ff0d1ac67fbd60632b52c05
(cherry picked from commit a2ebf7415ca2bfaff46bf310ec3d79d1544eb33d)
zram & zsmalloc: fix code for 2.6.35 kernel

Change-Id: I744ddd9a084300460a29c3706ed84721faef66fe
(cherry picked from commit 769666357c8cdccb8d5e4388b18c4de871f4a742)
Update Samsung configs for new zram

Also disable cleancache. This is active only when zcache is used,
and no previous build ever had zcache active (it needed a cmdline
parameter of "zcache" to activate). I already tested with zcache
active, and the driver doesn't function properly.

Frontswap also has the same problem, but disabling it via the
config will cause build errors. Will fix/remove these drivers
properly later.

Change-Id: Icb74e4414b9bc051b39eb92bf6c621b14f943cfc
(cherry picked from commit 637fb3be9e91c3d3ab7ff35364dc2a774aee5f4e)
cgroupfs: create /sys/fs/cgroup to mount cgroupfs on

We really shouldn't be asking userspace to create new root filesystems.
So follow along with all of the other in-kernel filesystems, and provide
a mount point in sysfs.

For cgroupfs, this should be in /sys/fs/cgroup/  This change provides
that mount point when the cgroup filesystem is registered in the kernel.

Change-Id: I998f5029df3f4c3b589d4a97c4c5f73ad1817ffb
Acked-by: Paul Menage <menage@google.com>
Acked-by: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Lennart Poettering <lennart@poettering.net>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
netfilter: xt_qtaguid: update to msm-3.4

AU_LINUX_ANDROID_JB_MR2.04.03.00.110.011
Preserve compatibility with 2.6.35 kernel.

psyke83: cleaned up some whitespace differences

Change-Id: I8912242c95270f21b0d21dc859c56f0d0342d8c0
(cherry picked from commit 84c06c418b50abe7b1ee1e727398b4774eff2a3d)