[Galaxy S Plus I9001 Android Development] Christopher83:
​

In this thread you may find my customized kernel 3.4.x for LP-5.1 rom (CM 12.1 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.1 repo branch of DevCon Team

- Built with my custom Linaro GCC 5.2.1-2015.11 toolchain optimized for Cortex-A

- 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.1 ION+PMEM ADSP:

K^Kernel LP-5.1 Mediafire Folder

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

- v4.0 -

for ADC CM 12.1

and the other roms based on it

Note: You must use the TWRP recovery with new partition assignments you may find inside ADC CM 12.1 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.1 ION+PMEM ADSP

​

Useful info:

- Special features and sysfs settings

- Frequently asked questions

​

Tables:

​

Changelog:

[B]24/01/2016 - K^Kernel 3.4 v4.0 for LP-5.1 ION+PMEM ADSP[/B]
- Kernel 3.4.110
- Built with my latest custom Linaro 5.2.1-2015.11 toolchain optimized for Cortex-A
- mm: vmpressure: fix backport (credits to Dave Daynard)
- block: bfq: Squashed update from BFQ-v7r5 to BFQ-v7r8 (credits to Michael Bestas)
- ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h (credits to Behan Webster)
- msm: kgsl: Use static methods for iommu sync lock and unlock (credits to Christopher83)
- arm: crypto: Squashed reverts of crypto optimizations (credits to Christopher83)

[B]12/08/2015 - K^Kernel 3.4 v3.0 for LP-5.1 ION+PMEM ADSP[/B]
- Kernel 3.4.108
- Built with my latest custom Linaro 4.9.4-2015.06 toolchain optimized for Cortex-A8
- mm, oom: make dump_tasks public (credits to Liam Mark)
- mm: vmpressure: allow in-kernel clients to subscribe for events (credits to Vinayak Menon)
- mm: Add notifier framework for showing memory (credits to Laura Abbott)
- android/lowmemorykiller: Account for total_swapcache_pages (credits to Liam Mark)
- lowmemorykiller: Don't count swap cache pages twice (credits to Liam Mark)
- lowmemorykiller: use for_each_thread instead of buggy while_each_thread (credits to Vinayak Menon)
- lowmemorykiller: enhance debug information (credits to Liam Mark)
- lowmemorykiller: Dump out slab state information (credits to Laura Abbott)
- lowmemorykiller: Run the lowmemory notifier when killing (credits to Laura Abbott)
- lowmemorykiller: Do proper NULL checks (credits to Susheel Khiani)
- lowmemorykiller: adapt to vmpressure (credits to Vinayak Menon)

[B]08/06/2015 - K^Kernel 3.4 v2.0 for LP-5.1 ION+PMEM ADSP[/B]
- Revert "epoll: use freezable blocking call" (credits to Rafael J. Wysocki)
- suspend: Return error when pending wakeup source is found. (credits to Ruchi Kandoi)
- subsystem: CPU FREQUENCY DRIVERS- Set cpu_load calculation on current frequency (credits to rahul.khandelwal)
- cfg80211: add space after the b/w in db.txt (credits to Mihir Shete)
- usb: ks_bridge: Ignore completion error in RX path (credits to ChandanaKishori Chiluveru)
- ipv4: Missing sk_nulls_node_init() in ping_unhash(). (credits to David S. Miller)
- msm: msm_fb: wait for VSYNC instead of DMA_P for LCDC (credits to Justin Philip)
- msm: Kconfig: Disable SPARSEMEM for msm7x30 targets (credits to mikeioannina)
- video: msm: Tone down logging (credits to mikeioannina)
- Update defconfigs (credits to arco68)

[B]17/05/2015 - K^Kernel 3.4 v1.5 for LP-5.1 ION+PMEM ADSP[/B]
- ZRam reduced from 256MB to 128MB
- Ramdisk updates

[B]02/05/2015 - K^Kernel 3.4 v1.0 for LP-5.1 ION+PMEM ADSP[/B]
- Kernel 3.4.107
- Built with my latest custom Linaro 4.9.3-2015.03 toolchain optimized for Cortex-A8

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.1 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.1

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

Version Information

Status: Stable

Current Stable Version: v4.0

Stable Release Date: 2016-01-24

Created 2015-05-02

Last Updated 2016-01-30