[Samsung Galaxy W I8150] Christopher83:
​

In this thread you may find my customized kernel 3.4.x for Lollipop rom (CM 12.0 and derivatives) that use ION+PMEM ADSP memory allocations.

Of course, your feedback, as always, are welcome and certainly valuable.

The main features are the following:

- Kernel 3.4.x

- Kernel based on more updated kk_2.7-stable branch of CAF (Code Aurora Forum)

- Sources synched with cm-12.0 repo branch of DevCon Team

- Built with my custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8

- Built with Cortex-A8 and NEON VFP optimization flags (both kernel and modules)

- Built with -O3 optimization flag (both kernel and modules)

- CPU overclockable up to 1824 MHz

- CPU frequencies undervolted (UV version) or extremely undervolted (EXUV version)

- CPU voltage control VDD sys interface (click for more details)

- Dynamic memory allocation of ION heaps through CMA (Contiguous Memory Allocator)

- Dynamic memory allocation of PMEM ADSP heap through CMA (Contiguous Memory Allocator)

- 426MB of free RAM

- Init.d support

- Fast Charge support (default disabled, click for more details)

- Battery Life eXtender support (default disabled, click for more details)

- Ram Console support (click for more details)

- TRIM support

- USB OTG support (if also implemented on rom side)

- Lowered display panel voltage

- Lowered vibetonz voltage

- Lowered wifi voltage

- Lowered swappiness (60 -> 45)

- Increased CPU frequency during boot

- Optimized AES and SHA1 routines for ARM cpu architecture

- Fixed 100% battery notification after charger unplug

- Increased audio volume on board side

- Con Kolivas' CK3 Tweaks

- Optimized SLUB memory allocator

- Optimized ARM RWSEM (read/write semaphore) algorithm

- Optimized asynchronous I/O latency on solid state disks

- Disabled Gentle Fair Sleepers for better UI performance

- CIFS support on boot

- Memory compaction

- Dynamic compression of clean pagecache pages

- Dynamic FSync v1.2 (click for more details)

- Dynamic dirty page writebacks (click for more details)

- VM tweaks for performance and less battery consumption

- Timer slack controller (click for more details)

- Dynamic management of the minimal timer slack value during suspend/resume (click for more details)

- LowMemoryKiller management of not killable processes (click for more details)

- exFAT support

- Additional TCP Congestion algorithms

- Updated ZRam, ZSMalloc, ZCache built-in modules

Available CPU governors:

- Adaptive

- BrazilianWax

- Conservative

- Hyper

- Intellidemand

- Interactive

- InteractiveX

- LionHeart

- LulzActive

- OnDemand (default)

- OnDemandX

- Performance

- Powersave

- SmartAssV2

Available I/O schedulers:

- BFQ

- CFQ

- Deadline

- Fiops

- Noop

- ROW (default)

- SIO

- V(R)

Kernel Downloads for Lollipop ION+PMEM ADSP:

K^Kernel LP-5.0 Mediafire Folder

[QRCODE]https://www.mediafire.com/folder/b82tiiw5u7hd7[/QRCODE]

- v2.0 -

for CM 12.0

and the other roms based on CM 12.0

Note: You must use the CWM recovery with new partition assignments you may find inside CM 12.0 thread by arco68.
​

Howto install the kernel:

1) Download the preferred kernel zip file to sdcard or external sdcard

2) Reboot to recovery mode

3) Flash the kernel zip file

4) Reboot the system

Kernel sources (on GitHub):

Development branch of K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP

​

Useful info:

- Special features and sysfs settings

- Frequently asked questions

​

Tables:

​

Changelog:

[B]11/03/2015 - K^Kernel 3.4 v2.0 for Lollipop ION+PMEM ADSP[/B]
- Kernel 3.4.106
- Built with my latest custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8
- defconfig: Switch to ROW I/O scheduler as default (credits to Christopher83)
- HID: input: generic hidinput_input_event handler (credits to David Herrmann)
- cpufreq: Avoid using global variable total_cpus (credits to Ruchi Kandoi)
- net/ping: handle protocol mismatching scenario (credits to Jane Zhou)
- net: ipv6: allow choosing optimistic addresses with use_optimistic (credits to Erik Kline)
- netfilter: IDLETIMER: fix invalid deference of timer (credits to JP Abgrall)
- prctl: make PR_SET_TIMERSLACK_PID pid namespace aware (credits to Micha Kalfon)
- crypto: arm-aes - fix encryption of unaligned data (credits to Mikulas Patocka)
- ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures (credits to Jussi Kivilinna)
- ARM: 8119/1: crypto: sha1: add ARM NEON implementation (credits to Jussi Kivilinna)
- ARM: 8120/1: crypto: sha512: add ARM NEON implementation (credits to Jussi Kivilinna)
- defconfig: Enable NEON optimized SHA1 crypto routines (credits to Christopher83)
- defconfig: Build QCOM crypto device as built-in (credits to Christopher83)
- pstore: selinux: add security in-core xattr support for pstore and debugfs (credits to Mark Salyzyn)
- KEYS: close race between key lookup and freeing (credits to Sasha Levin)
- msm_fb: Fix RGB pipe offset issue (credits to Blefish)
- msm: mdp.c fix deadlock which causes blue screen (credits to Vinu Deokaran)
- msm: rq_stats: Use cpufreq API to get the current frequency (credits to Archana Sathyakumar)
- defconfig: Back to enforced SELinux (credits to Christopher83)
- staging: android: ashmem: add missing include (credits to Rom Lemarchand)
- net: wireless: bcmdhd: Remove WLAN_CIPHER_SUITE_AES_CMAC advertisement (credits to Dmitry Shmidt)
- gpu: ion: Refactor locking (credits to Srinivasarao P)
- gpu: ion: use a list instead of a tree for heap debug memory map (credits to Srinivasarao P)
- gpu: ion: fix locking issues in debug code (credits to Mitchel Humpherys)
- gpu: ion: add locking to traversal of volatile rb tree (credits to Srinivasarao P)
- gpu: ion: Delete invalid extra file (credits to Pradosh Das)
- drivers: video: msm: Cleanup some dead codes (credits to sirmordred)
- lz4: Revert previously applied commits (credits to Christopher83)
- decompressor: add LZ4 decompressor module (credits to Kyungsik Lee)
- lib: add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- lib: add lz4 compressor module (credits to Chanho Min)
- lib/lz4: correct the LZ4 license (credits to Richard Laager)
- lz4: fix compression/decompression signedness mismatch (credits to Sergey Senozhatsky)
- lz4: ensure length does not wrap (credits to Greg Kroah-Hartman)
- lz4: fix another possible overrun (credits to Greg Kroah-Hartman)
- lz4: add overrun checks to lz4_uncompress_unknownoutputsize() (credits to Greg Kroah-Hartman)
- Update zram and zsmalloc up-to 3.17 kernel changes (credits to sirmordred)
- msm7x30: Remove high memory configurations (credits to Christopher83)
- msm7x30: Change all heap types to CMA (credits to sirmordred)
- msm7x30: Workaround deep sleep issue (credits to Christopher83)
- msm7x30: Increase ION memory heap for surfaceflinger (credits to Christopher83)
- defconfig: Update default and custom configurations (credits to Christopher83)
- f2fs: Sync F2FS to Jaegeuk's linux-3.4 branch (credits to Christopher83)
- selinux: fix inode security list corruption (credits to Stephen Smalley)
- Squashed update of kernel from 3.4.105 to 3.4.106 (credits to Christopher83)
- ipv4: try to cache dst_entries which would cause a redirect (credits to Hannes Frederic Sowa)
- USB: android: release spinlock before queuing work in android_setup (credits to Tarun Gupta)
- usb: gadget: Ignore the second set_config from the host (credits to ChandanaKishori Chiluveru)
- usb: android: Skip the work when set_config arrives with same value twice (credits to ChandanaKishori Chiluveru)
- usb: android: Fixup multiple lun support (credits to arco68)
- msm: camera: s5k4ecgx: Set mount angle from platform data (credits to sirmordred)
- USB: gadget: qdss: Fix strncmp length usage (credits to Kumar Gala)
- usb: android: Print LUN debug info (credits to Christopher83)
- Ramdisk updates (credits to Christopher83)

[B]31/12/2014 - K^Kernel 3.4 v1.0 for Lollipop ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2014.12 toolchain optimized for Cortex-A8
- ariesve: Set SELinux to be permissive (credits to Christopher83)
- defconfig: Set selinux permissive (credits to arco68)
- defconfig: Enable CONFIG_NETFILTER_XT_TARGET_IDLETIMER (credits to arco68)
- defconfig: Regenerate (credits to arco68)
- ext4: Add support for FIDTRIM, a best-effort ioctl for deep discard trim (credits to JP Abgrall)
- broadcom_wlan: Modify country code source (credits to arco68)
- net: ipv6: autoconf routes into per-device tables (credits to Lorenzo Colitti)
- netfilter: nf_conntrack: decrement global counter after object release (credits to Pablo Neira Ayuso)
- net: ipv6: Add a sysctl to make optimistic addresses useful candidates (credits to Erik Kline)
- Enable NEED_NETDEV for vendor command support. (credits to Subhani Shaik)
- cfg80211: ignore supported rates for nonexistant bands on scan (credits to Felix Fietkau)
- crypto: msm: check potential integer overflow (credits to William Clark)
- defconfig: Enable generic USB audio driver (credits to tobigun)
- i2c: chips: fsa9480: Add support for charging in USB-OTG mode (credits to tobigun)
- defconfig: Update custom defconfigs (credits to Christopher83)
- defconfig: Disable Frandom module (credits to Christopher83)
- i2c: chips: fsa9480: Add write-permission for USB-OTG charger type (credits to tobigun)
- Staging: android: binder: More offset validation. (credits to Arve Hjonnevag)
- fs: f2fs: Initial import from https://kernel.googlesource.com (credits to arco68)
- defconfig: Enable F2FS filesystem (credits to arco68)

Credits and Thanks to:

arco68, CastagnaIT and Ivendor for their awesome work and their kernel sources

Ezekeel, Doomlord, Faux123, Stratosk, Tegrak, ErasmuX, Imoseyon, Blefish, mikeioannina, Madridii and other devs I'm surely missing

CyanogenMod, Kernel.org, Code Aurora Forum, Google, Linaro GCC developers

XDA:DevDB Information

[GT-I8150][ION] K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP, Kernel for the Samsung Galaxy W I8150

Contributors

Christopher83

Source Code: https://github.com/Christopher83/samsung-kernel-msm7x30/tree/cm-12.0

Kernel Special Features: Customized kernel 3.4.x for LP 5.0 rom (CM 12.0 and derivatives) with ION memory allocations

Version Information

Status: Stable

Current Stable Version: v2.0

Stable Release Date: 2015-03-11

Created 2014-12-31

Last Updated 2015-06-08