[Galaxy S Plus I9001 Android Development] Christopher83:
​

In this thread you may find my customized kernel 3.4.x for LP-5.0 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.03 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)

- Approximately 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)

- Backlight Notification v10 (BLNv10) (click for more details)

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

- Customizable vibration intensity (click for more details)

- Lowered display panel voltage

- Lowered touchscreen 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

- New display drivers from Samsung Galaxy SII

- Updated light sensor driver and display driver light sensor changes

- Updated sensor drivers

- Phantom key presses filter (click for more details)

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

- Dynamic dirty page writebacks (click for more details)

- VM tweaks for performance and less battery consumption

- Customizable timeout for touchkeys backlight after a key press or touchscreen press (click for more details)

- Customizable activation status of touchkeys backlight on touchscreen press (click for more details)

- 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)

- F2FS and 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 LP-5.0 ION+PMEM ADSP:

K^Kernel LP-5.0 Mediafire Folder

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

- v4.5 -

for ADC CM 12.0

and the other roms based on this CM 12.0

Note: You must use the TWRP recovery with new partition assignments you may find inside ADC CM 12.0 thread
​

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]04/04/2015 - K^Kernel 3.4 v4.5 for LP-5.0 ION+PMEM ADSP[/B]
- Built with my latest custom Linaro 4.9.3-2015.03 toolchain optimized for Cortex-A8
- msm: camera: Increased MAX_PMEM_CFG_BUFFERS (credits to sirmordred)
- Revert "msm_fb: Fix backlight issue on ancora and ancora_tmo" (credits to sirmordred)
- nl80211: Correct the usage of command NL80211_CMD_VENDOR (credits to Sunil Dutt)
- nl80211: Fix backport of struct wiphy_vendor_command (credits to Jeff Johnson)
- fs/proc/task_mmu.c: add user-space support for resetting mm->hiwater_rss (peak RSS) (credits to Petr Cermak)
- Set the iif for IPv6 packets as well. (credits to Lorenzo Colitti)
- net: ipv6: make "ip -6 route get mark xyz" work. (credits to Lorenzo Colitti)
- diag: Make fixes to diag_switch_logging (credits to Ravi Aravamudhan)
- seq_file: always update file->f_pos in seq_lseek() (credits to Devin Kim)
- cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}() (credits to Devin Kim)
- vfs: check if f_count is 0 or negative (credits to Shengzhe Zhao)
- msm_fb: Fix GC & IGC LUT (credits to Blefish)
- msm_fb: Enable MDP4 IGC LUT (credits to Blefish)
- msm_fb: Add KCAL interface (credits to Blefish)
- drivers: Updated vibrator driver (credits to sirmordred)
- msm: camera: Updated ledflash driver (credits to sirmordred)
- Revert "drivers: usb: Use Android device as USB keyboard/mouse" (credits to sirmordred)
- drivers: video: ancora: Fixed indentation and cleaned up whitespaces (credits to sirmordred)
- mmc: core: Increased timeout limits to improve handling of bad sd cards (credits to sirmordred)
- drivers: input: melfas: Add keydisabler (credits to sirmordred)

[B]02/03/2015 - K^Kernel 3.4 v4.0 for LP-5.0 ION+PMEM ADSP[/B]
- Built with my latest custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8
- 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)

[B]09/02/2015 - K^Kernel 3.4 v3.5 for LP-5.0 ION+PMEM ADSP[/B]
- Kernel 3.4.106
- Built with my latest custom Linaro 4.9.3-2015.01 toolchain optimized for Cortex-A8
- selinux: fix inode security list corruption (credits to Stephen Smalley)
- ipv4: try to cache dst_entries which would cause a redirect (credits to Hannes Frederic Sowa)

[B]01/02/2015 - K^Kernel 3.4 v3.0 for LP-5.0 ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2015.01 toolchain optimized for Cortex-A8
- 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)

[B]23/01/2015 - K^Kernel 3.4 v2.0 for LP-5.0 ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2015.01 toolchain optimized for Cortex-A8
- 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)
For the enforced kernels only:
- defconfig: Back to enforced SELinux (credits to Christopher83)

[B]13/01/2015 - K^Kernel 3.4 v1.5 for LP-5.0 ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2014.12 toolchain optimized for Cortex-A8
- defconfig: Switch to ROW I/O scheduler as default (credits to Christopher83)
- Ramdisk updates

[B]31/12/2014 - K^Kernel 3.4 v1.0 for LP-5.0 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 and other devs I'm surely missing

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

KTulu84, Rhonin86, Smeroni68, XeLLaR* for their support in testing

Sament83, B1tt1, Dellup, Pierm, Leonbeson, Cippoz89, Marco Z., Rhonin86, modog, Ludovic D. for their donations

XDA:DevDB Information

[GT-I9001][ION] K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP, Kernel for the Samsung Galaxy S Plus I9001

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: v4.5

Stable Release Date: 2015-04-04

Created 2014-12-31

Last Updated 2015-06-08