[Samsung Galaxy W I8150] Christopher83:
​

In this thread you may find my customized kernel 3.4.x for KitKat rom (CM 11.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-11.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 MM ION heap through CMA (Contiguous Memory Allocator)

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

- 396MB, 406MB or 416MB 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

- Fast Random generator (frandom) support (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

- Revised LowMemoryKiller parameters for better performance (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)

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

K^Kernel KK-4.4 Mediafire Folder

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

- v3.0 -

for CM 11.0

and the other roms based on this rom.

Note: You must use the CWM recovery with new partition assignments you may find inside CM 11.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[/B]

Kernel sources (on GitHub):

Development branch of K^Kernel 3.4 for KK 4.4 ION+PMEM ADSP

​

Useful info:

- Special features and sysfs settings

- Frequently asked questions

​

Tables:

​

Changelog:

[B]05/04/2015 - K^Kernel 3.4 v3.0 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.106
- Built with my latest custom Linaro 4.9.3-2015.03 toolchain optimized for Cortex-A8
- i2c: chips: fsa9480: Add support for charging in USB-OTG mode (credits to tobigun)
- 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)
- 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)
- 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)
- 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)
- msm: camera: s5k4ecgx: Set mount angle from platform data (credits to sirmordred)
- USB: gadget: qdss: Fix strncmp length usage (credits to Kumar Gala)
- msm: camera: Increased MAX_PMEM_CFG_BUFFERS (credits to sirmordred)
- 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)

[B]31/12/2014 - K^Kernel 3.4 v2.0 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2014.12 toolchain optimized for Cortex-A8
- Revert "prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID." (credits to arco68)
- Revert "prctl: adds PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread." (credits to arco68)
- Revert "Fix execve behavior apparmor for PR_{GET,SET}_NO_NEW_PRIVS" (credits to arco68)
- Revert "Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from granting privs" (credits to arco68)
- prctl: adds PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread. (credits to Ruchi Kandoi)
- prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID. (credits to Ruchi Kandoi)
- mm: fix prctl_set_vma_anon_name (credits to Colin Cross)
- introduce for_each_thread() to replace the buggy while_each_thread() (credits to Oleg Nesterov)
- 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 default and custom defconfigs (credits to Christopher83)

[B]12/11/2014 - K^Kernel 3.4 v1.8.5 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.104
- Built with my latest custom Linaro 4.9.2-2014.10 toolchain optimized for Cortex-A8
- Revert "mm: Added filesystem dynamic read-ahead (Credits to Chad Gooldman)" (credits to tycoo)
- Update lcdc_samsung_ancora.h (credits to Madridii)

[B]26/10/2014 - K^Kernel 3.4 v1.8 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.104
- Built with my latest custom Linaro 4.9.2-2014.09 toolchain optimized for Cortex-A8
- Fix ancora and ancora_tmo vibrator regulators (credits to sirmordred)
- Revert "Staging: android: binder: More offset validation." (credits to arco68)
- msm: vidc: cache-flush encoder output buffers after alloc (credits to Praveen Chavan)
- seq_file: remove "%n" usage from seq_file users (credits to Tetsuo Handa)
- seq_file: introduce seq_setwidth() and seq_pad() (credits to Tetsuo Handa)
- vsprintf: ignore %n again (credits to Kees Cook)
- target/rd: Refactor rd_build_device_space + rd_release_device_space (credits to Nicholas Bellinger)
- board-ancora_tmo: Minor updates and changes (credits to doadin)
- block: row: Remove warning massage from add_request (credits to Tatyana Brokhman)
- Revert "Revert "mmc: core: remove the polling for BKOPS completion"" (credits to arco68)
- mmc: print an error on FLUSH timeout (credits to Maya Erez)
- mmc: block: flush request requeue after timeout. (credits to Maya Erez)
- mmc: core: increase timeout for disable cache operation (credits to Maya Erez)
- mmc: core: do not reinsert prepeared FUA and FLUSH requests in stop flow (credits to Konstantin Dorfman)
- mmc: queue: do not clean current request when urgent in progress (credits to Konstantin Dorfman)
- mmc: core: fix block request queue hang during data crc errors (credits to Sujit Reddy Thumma)
- mmc: core: continue to wait, when unblocked by signal (credits to Konstantin Dorfman)
- msm7x30: Revert SDC channels to upstream (credits to arco68)
- msm7x30: samsung: Remove PMIC_GPIO_SD_DET (credits to arco68)
- msm7x30: samsung: Disable sdc2_cfg_data (credits to arco68)
- msm7x30: samsung: Switch rest of boards to use msm_gpios_disable_free (credits to arco68)
- defconfig: Enable CONFIG_PM_RUNTIME (credits to arco68)
- fsa9480: corrected charging through USB 3.0 port also removed trailing spaces and some cleanups (credits to CastagnaIT)
- defconfigs: Updated defconfigs (credits to sirmordred)
- fm_si4709: samsung jb updates *GT-I9100 sources (credits to CastagnaIT)
- fs: exfat: Make optional (credits to arco68)
- defconfigs: Disable exFAT kernel driver (credits to arco68)
- msm: camera: Replace idle wakelocks with pm_qos (credits to arco68)
- touchscreen: ancora: Add INPUT_PROP_DIRECT flag (credits to sirmordred)
- msm: kgsl: Remove all reference to CONFIG_ANDROID_PMEM (credits to Laura Abbott)
- msm: Remove all references to CONFIG_ANDROID_PMEM (credits to Laura Abbott)
- msm: Remove PMEM dependency for MSM7KV2_AUDIO (credits to Michael Bestas)
- Revert "freezer: shorten freezer sleep time using exponential backoff" (credits to arco68)
- mmc: core: enhance card removal judgement for slow removal (credits to Kevin Liu)
- mmc: core: invoke low power mode if card is not present (credits to Asutosh Das)
- block: row: Fix crash when adding a new field in bio struct (credits to Tanya Brokhman)

[B]13/09/2014 - K^Kernel 3.4 v1.7 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.103
- Built with my latest custom Linaro 4.9.2-2014.08 toolchain optimized for Cortex-A8
- Removed bcmdhd driver (credits to CastagnaIT)
- net: wireless: bcmdhd: bring bcmdhd version 1.28-27 (credits to CastagnaIT)
- net: wireless: bcmdhd: Fix SUPPORT_PM2_ONLY option for p2p (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.4 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.6 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.7 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Fix WEP-104 authentication (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.10 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Prevent recursive call of cfg80211_sched_scan_stopped() (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Enable full scan on PNO event (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.11 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.16 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Close p2p0 device in wl_down (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.21 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Fix tdls processing from cfg80211 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.27 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Fix NDO functionality (credits to ECCO PARK)
- net: wireless: bcmdhd: Enable p2p support bits for p2p device (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Remove PASS_ARP_PACKET define (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Remove chatty message from wl_cfgp2p_act_frm_search (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.41 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.42 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.45 (credits to Ecco Park)
- net: wireless: bcmdhd: enable WL_IFACE_COMB_NUM_CHANNELS (credits to Ecco Park)
- net: wireless: bcmdhd: Update Location Service code (credits to Ecco Park)
- net: wireless: bcmdhd: Fix of Wireless Location Service (credits to Ecco Park)
- net: wireless: bcmdhd: Fix of Wireless Location Service (credits to Ecco Park)
- net: wireless: bcmdhd: new feature for Roaming. (credits to Ecco Park)
- net: wireless: bcmdhd: Fixed Coverity issue. (credits to Ecco Park)
- net: wireless: bcmdhd: fix for negative padding (credits to Ecco Park)
- net: wireless: bcmdhd: Fixed Wi-Fi Location Service issues. (credits to Ecco Park)
- net: wireless: bcmdhd: add code for WLS service. (credits to Ecco Park)
- net: wireless: bcmdhd: Fix country checking (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: fixed power consumption issue of P2P. (credits to Ecco Park)
- net: wireless: bcmdhd: Fixed a problem of buganizer issue (11190960) (credits to Ecco Park)
- net: wireless: bcmdhd: reduced the wakelock time of RX packet (credits to Ecco Park)
- net: wireless: bcmdhd: cancel current PNO if connection will happen (credits to Ecco Park)
- net: wireless: bcmdhd: Change DTIM skip policy in suspend (credits to Ecco Park)
- net: wireless: bcmdhd: Set MAX_DTIM_ALLOWED_INTERVAL to 600 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Enable IPv6 RA filter feature (credits to Ecco Park)
- net: wireless: bcmdhd: enable TDLS_auto_mode (credits to Ecco Park)
- net: wireless: bcmdhd: Sync with N5 branch (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Change the parameter for TDLS (credits to Ecco Park)
- net: wireless: bcmdhd: support Hotspot 2.0 release 1.0 (credits to Ecco Park)
- net: wireless: bcmdhd: Add WIPHY_WOWLAN_ANY support (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Add support for hidden ssid PNO scan (credits to Ashwin)
- net: wireless: bcmdhd: added samsung specific code (credits to CastagnaIT)
- net: wireless: bcmdhd: readded samsung MCAST_LIST_ACCUMULATION code updated from jf (credits to CastagnaIT)
- qdsp5v2: Fix a null pointer dereference. (credits to Blefish)

[B]11/09/2014 - K^Kernel 3.4 v1.6 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.103
- Built with my latest custom Linaro 4.9.2-2014.08 toolchain optimized for Cortex-A8
- drivers: usb: Use Android device as USB keyboard/mouse (credits to Pranav Vashi)
- touchscreen: ancora: Update touchscreen API (credits to sirmordred)
- touchscreen: ancora: Add missing BTN_TOUCH (credits to arco68)
- mmc: msm_sdcc: Remove unnecessary delay in interrupt context (credits to Venkat Gopalakrishnan)
- USB: msm_otg: Fix host mode suspend bug (credits to Sujeet Kumar)
- USB: msm_otg: Fix a bug in charger detection procedure (credits to Pavankumar Kondeti)
- msm: kgsl: Force the ME off before reading the microcode (credits to Jordan Crouse)
- msm: kgsl: Increase the timeout value for fault detection (credits to Shubhraprakash Das)
- msm: kgsl: Don't hold the refernce to the process private in kgsl create context (credits to Gaurav Gagrani)
- n_tty: Fix n_tty_write crash when echoing in raw mode (credits to Peter Hurley)
- msm_bam_rmnet: Fix potential memory corruption (credits to Subash Abhinov Kasiviswanathan)
- fs: exFAT: Update to v1.2.9 (credits to arco68)
- msm: qdsp5v2: Convert all audio devices to ION. (credits to Blefish)
- msm: qdsp5v2: Minor code sync. (credits to Blefish)
- devices-msm7x30: #ifdef around msm_nand device (credits to arco68)
- board-ancora: Minor updates and changes (credits to arco68)
- lcd: ancora: Adjust porch values for rev. 2 panels (credits to arco68)
- lcdc:ancora:Adjust porch values for rev. 1 panels too (credits to arco68 and sirmordred)

[B]01/08/2014 - K^Kernel 3.4 v1.5 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.101
- Built with my latest custom Linaro 4.9.1-2014.07 toolchain optimized for Cortex-A8
- usb: gadget: f_accessory: Enabled Zero Length Packet (ZLP) for acc_write (credits to Anson Jacob)
- cgroup: Take css_set_lock from cgroup_css_sets_empty() (credits to Hans de Goede)
- cgroup: Fix use after free of cgrp (cgrp->css_sets) (credits to Hans de Goede)
- Revert "s3c2410_wdt: Add locking to cpu frequency transition notifier" (credits to Mark Salyzyn)
- usb: gadget: f_audio_source: Fixed USB Audio Class Interface Descriptor (credits to Anson Jacob)
- net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol() (credits to Avijit Kanti Das)
- Remove stray bcm4329 files (credits to arco68)
- fs: exFAT: Update to v1.2.7 (credits to arco68)
- ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and above (credits to Dave Martin)

[B]14/07/2014 - K^Kernel 3.4 v1.4 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.98
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- misc: pmem: Retry again a few times if DMA allocation fails (credits to Christopher83)
- defconfig: Disable KSM (credits to arco68)
- Revert "msm: mdp: Update sync pt. behaviour" (credits to arco68)
- cpufreq: Persist cpufreq time in state data across hotplug (credits to Ruchi Kandoi)
- prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID. (credits to Ruchi Kandoi)
- net: wireless: Increase scan entry expiration to fit new scan time (credits to Dmitry Shmidt)
- DMA: PL330: Fix racy mutex unlock (credits to Javi Merino)
- cpufreq: fix sleeping in atomic context when realloc freq_table for all_time_in_state (credits to Minsung Kim)
- s3c2410_wdt: Add locking to cpu frequency transition notifier (credits to Mark Salyzyn)
- net: core: Support UID-based routing. (credits to Lorenzo Colitti)
- Handle 'sk' being NULL in UID-based routing. (credits to Sreeram Ramachandran)
- rtc: alarm: Squashed revert of power-on alarm feature and related commits (credits to Christopher83)
- binder: search for receiving context pid in global namespace (credits to Ricardo Mendoza)
- staging: binder: add vm_fault handler (credits to Vinayak Menon)
- Staging: android: binder: More offset validation. (credits to Arve Hjønnevåg)

[B]05/07/2014 - K^Kernel 3.4 v1.3 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.96
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- block: bfq: Squashed update from BFQ-v7r4 to BFQ-v7r5 (credits to arco68)
- misc: pmem: Support for dynamic allocation through CMA (credits to Christopher83)
- msm7x30: Simplify the code for hybrid memory allocations on board side (credits to Christopher83)
- msm7x30: Allow to optionally enable the use of CMA for ION MM and PMEM ADSP heaps (credits to Christopher83)
- msm7x30: Use CMA for PMEM ADSP (credits to Christopher83)
- msm7x30: Update defconfigs (credits to Christopher83)
- msm7x30: Use a higher memory allocation if CMA is used for ION MM heap (credits to Christopher83)

[B]25/06/2014 - K^Kernel 3.4 v1.2 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.94
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- msm: rpc: add shutdown and restart handler for rpc (credits to Angshuman Sarkar)
- msm: rpc: add shutdown and restart handler for rpc (credits to Arun Kumar Neelakantam)
- msm: restart_7k: Disable local IRQ interrupt (credits to Tirupathi Reddy)
- msm7x30: Disable unsupported features (credits to Blefish)
- misc: pmem: Add support for CMA (credits to Blefish)
- msm7x30: Use CMA for PMEM ADSP (credits to Christopher83 and Blefish)
- New memory configurations with 396MB, 406MB or 416MB of free RAM and
everything should be working, including camera, camcorder and video playback (credits to Christopher83)

[B]23/06/2014 - K^Kernel 3.4 v1.1 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.94
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- power: ancora_battery: Remove trailing spaces (credits to Christopher83)
- power: ancora_tmo_battery: Remove trailing spaces (credits to Christopher83)
- power: apache_battery: Remove trailing spaces (credits to Christopher83)
- power: ancora_tmo_battery: Add Battery Life eXtender (BLX) support (credits to Christopher83)
- power: apache_battery: Add Battery Life eXtender (BLX) support (credits to Christopher83)
- power: apache_battery: 100% battery notification after charger unplug (credits to Christopher83)
- power: ancora_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- power: ancora_tmo_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- power: apache_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- ancora_tmo: High memory configurations (credits to Christopher83)
- apache: High memory configurations (credits to Christopher83)
- msm7x30: Better manage cpu frequencies for MSM8255 and MSM8255T (credits to Christopher83)
- ancora_tmo: Add custom defconfigs (credits to Christopher83)
- apache: Add custom defconfigs (credits to Christopher83)
- arm: Add a config option to use GLibC memcpy and memmove versions (credits to Christopher83)
- msm7x30: Update defconfigs to use GLibC versions of memcpy and memmove (credits to Christopher83)
- mmc: msm_sdcc: Advertise erase capability for ancora_tmo and apache (credits to arco68)
- sec_jack: updated driver (credits to CastagnaIT)
- mm: cma: fix alignment requirements for contiguous regions (credits to Marek Szyprowski)
- drivers: cma: represent physical addresses as phys_addr_t (credits to Vitaly Andrianov)
- drivers: dma-contiguous: refactor dma_alloc_from_contiguous() (credits to Michal Nazarewicz)
- mm: cma: fix condition check when setting global cma area (credits to Marek Szyprowski)
- drivers: dma-contiguous: clean source code and prepare for device tree (credits to Marek Szyprowski)
- drivers: dma-contiguous: add initialization from device tree (credits to Marek Szyprowski)
- cma: Remove __init annotations from data structures (credits to Laura Abbott)
- cma: Fix up devicetree bindings (credits to Laura Abbott)
- cma: Add support for associating regions by name (credits to Laura Abbott)
- cma: Remove restriction on region names (credits to Laura Abbott)
- cma: use MEMBLOCK_ALLOC_ANYWHERE for placing CMA regions (credits to Laura Abbott)
- cma: Add API to get the start address of a CMA region (credits to Laura Abbott)
- cma: Remove potential deadlock situation (credits to Laura Abbott)
- cma: Add support for memory limits (credits to Laura Abbott)
- cma: Make locking finer grained (credits to Laura Abbott)
- cma: Drop the right mutex (credits to Laura Abbott)
- dma-contiguous: Return 'zero' pfn in case of error (credits to Chintan Pandya)
- ARM: dma-mapping: fix incorrect freeing of atomic allocations (credits to Aaro Koskinen)
- mm: vmalloc: use const void * for caller argument (credits to Marek Szyprowski)
- ARM: dma-mapping: remove custom consistent dma region (credits to Marek Szyprowski)
- mm: push lru index into shrink_[in]active_list() (credits to Konstantin Khlebnikov)
- mm: vmscan: remove lumpy reclaim (credits to Mel Gorman)
- mm: vmscan: do not stall on writeback during memory compaction (credits to Mel Gorman)
- mm: vmscan: remove reclaim_mode_t (credits to Mel Gorman)
- mm: remove lru type checks from __isolate_lru_page() (credits to Konstantin Khlebnikov)
- mm/memcg: kill mem_cgroup_lru_del() (credits to Konstantin Khlebnikov)
- mm/memcg: scanning_global_lru means mem_cgroup_disabled (credits to Hugh Dickins)
- mm/memcg: use vm_swappiness from target memory cgroup (credits to Konstantin Khlebnikov)
- mm: remove swap token code (credits to Rik van Riel)
- mm/vmscan: store "priority" in struct scan_control (credits to Konstantin Khlebnikov)
- kernel: cgroup: push rcu read locking from css_is_ancestor() to callsite (credits to Johannes Weiner)
- mm: memcg: count pte references from every member of the reclaimed hierarchy (credits to Johannes Weiner)
- mm/vmscan: push zone pointer into shrink_page_list() (credits to Konstantin Khlebnikov)
- mm/vmscan: push lruvec pointer into isolate_lru_pages() (credits to Konstantin Khlebnikov)
- mm/vmscan: remove update_isolated_counts() (credits to Konstantin Khlebnikov)
- mm: cma: discard clean pages during contiguous allocation instead of migration (credits to Minchan Kim)
- cma: decrease cc.nr_migratepages after reclaiming pagelist (credits to Minchan Kim)
- mm/compaction.c: fix deferring compaction mistake (credits to Minchan Kim)
- mm: compaction: Abort async compaction if locks are contended or taking too long (credits to Mel Gorman)
- mm: compaction: update comment in try_to_compact_pages (credits to Mel Gorman)
- mm: compaction: capture a suitable high-order page immediately when it is made available (credits to Mel Gorman)
- mm: compaction: abort compaction loop if lock is contended or run too long (credits to Shaohua Li)
- mm: compaction: move fatal signal check out of compact_checklock_irqsave (credits to Mel Gorman)
- mm: compaction: Update try_to_compact_pages()kerneldoc comment (credits to Mel Gorman)
- mm: compaction: acquire the zone->lru_lock as late as possible (credits to Mel Gorman)
- mm: compaction: acquire the zone->lock as late as possible (credits to Mel Gorman)
- mm: compaction: cache if a pageblock was scanned and no pages were isolated (credits to Mel Gorman)
- mm: cma: WARN if freed memory is still in use (credits to Marek Szyprowski)
- mm: do not use page_count() without a page pin (credits to Minchan Kim)
- mm: clean up __count_immobile_pages() (credits to Minchan Kim)
- mm: compaction: Restart compaction from near where it left off (credits to Mel Gorman)
- mm: compaction: clear PG_migrate_skip based on compaction and reclaim activity (credits to Mel Gorman)
- CMA: migrate mlocked pages (credits to Minchan Kim)
- mm: compaction: correct the nr_strict va isolated check for CMA (credits to Mel Gorman)
- mm: compaction: validate pfn range passed to isolate_freepages_block (credits to Mel Gorman)
- mm: compaction: Move migration fail/success stats to migrate.c (credits to Mel Gorman)
- mm: compaction: Add scanned and isolated counters for compaction (credits to Mel Gorman)
- mm: cma: skip watermarks check for already isolated blocks in split_free_page() (credits to Marek Szyprowski)
- mm: compaction: partially revert capture of suitable high-order page (credits to Mel Gorman)
- compaction: fix build error in CMA && !COMPACTION (credits to Minchan Kim)
- mm: vmscan: do not keep kswapd looping forever due to individual uncompactable zones (credits to Johannes Weiner)
- mm: vmscan: Fix build error (credits to Christopher83)
- msm: Allow lowmem to be non contiguous and mixed. (credits to Neeti Desai)
- msm: Increase the kernel virtual area to include lowmem (credits to Neeti Desai)
- mm: Remove __init annotations from free_bootmem_late (credits to Laura Abbott)
- kernel/lib: add additional debug capabilites for data corruption (credits to Syed Rameez Mustafa)
- mm: panic on the first bad page table entry access (credits to Pushkar Joshi)
- mm: Update is_vmalloc_addr to account for vmalloc savings (credits to Laura Abbott)
- slub: tid must be retrieved from the percpu area of the current processor (credits to Christoph Lameter)
- mm: vmscan: Move pages that fail swapout to LRU active list (credits to Olav Haugan)
- mm: swap: Rate limit swap write errors (credits to Olav Haugan)
- mm: change freepage state correctly in __isolate_free_page (credits to Laura Abbott)
- mm: make is_vmalloc_addr lockless (credits to Laura Abbott)
- mm/compaction: Break out of loop on !PageBuddy in isolate_freepages_block (credits to Laura Abbott)
- mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() (credits to Bartlomiej Zolnierkiewicz)
- msm: kgsl: hold a process_private refcount in process_mem_print (credits to Jeremy Gebben)
- msm: kgsl: Look up the process struct in process_mem_open() (credits to Jordan Crouse)
- msm: kgsl: prevent kgsl_get_pagetable from returning a destroyed pt (credits to Jeff Boody)
- msm: kgsl: Fix spinlock recursion in destroy pagetable (credits to Prakash Kamliya)
- gpu: ion: Don't call virt_to_page on addresses from dma_alloc (credits to Laura Abbott)
- gpu: ion: Explictly mark DMA allocations as GFP_KERNEL (credits to Laura Abbott)

[B]17/06/2014 - K^Kernel 3.4 v1.0 for KitKat ION+PMEM ADSP[/B]
- First release for Samsung Galaxy W (GT-I8150)
- Kernel 3.4.94
- Sources synched with cm-11.0 repo branch of DevCon Team
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- New kernel branch based on kk_2.7-stable branch of Code Aurora Forum
- Up to 406MB of free RAM thanks to the dynamic allocation via CMA of ION heap related to MM features (camcorder, video playback/recording/encoding)
- msm7x30: Use CMA for MM ION heap (credits to Christopher83)
- msm7x30: Update defconfigs to enable CMA (credits to Christopher83)
- mm: try_to_unmap_cluster() should lock_page() before mlocking (credits to Vlastimil Babka)
- msm:vidc: Amend error checks on ION API failures (credits to Maheshwar Ajja)
- ion: cma: Add debug heap ops for CMA heap (credits to Chintan Pandya)
- Makefile: Added compilation optimization flags (credits to Christopher83)
- arm: Fix compatibility with linaro toolchain (credits to CastagnaIT)
- arm: Added NEON compilation flag to VFP module (credits to Christopher83)
- acpuclock-7x30: Added overclocking and undervolting support (credits to Christopher83)
- acpuclock-7x30: Increased cpu frequency on boot (credits to Christopher83)
- block: fiops ioscheduler core (credits to Shaohua Li)
- block: fiops read/write request scale (credits to Shaohua Li)
- block: fiops sync/async scale (credits to Shaohua Li)
- block: fiops add ioprio support (credits to Shaohua Li)
- block: fiops preserve vios key for deep queue depth workload (credits to Shaohua Li)
- block: fiops bias sync workload (credits to Shaohua Li)
- block: fiops add some trace information (credits to Shaohua Li)
- block: Simple I/O scheduler (credits to Christopher83)
- block: V(R) I/O scheduler (credits to Christopher83)
- block: Reordered the I/O schedulers (credits to Christopher83)
- char: Added Fast Random generator support (frandom) (credits to Christopher83)
- cpufreq: CPU Voltage Control (VDD sysfs interface) (credits to Christopher83)
- cpufreq: Reordered the CPU governors (credits to Christopher83)
- cpufreq: InteractiveX CPU governor (credits to Christopher83)
- cpufreq: OnDemandX CPU governor (credits to Christopher83)
- cpufreq: Lionheart CPU governor (credits to Christopher83)
- cpufreq: SmartAssV2 CPU governor (credits to Christopher83)
- cpufreq: LulzActive CPU governor (credits to Christopher83)
- cpufreq: Adaptive CPU governor (credits to Christopher83)
- cpufreq: Hyper CPU governor (credits to Christopher83)
- cpufreq: BrazilianWax CPU governor (credits to Christopher83)
- cpufreq: Intellidemand CPU governor (credits to Christopher83)
- fs: Asynchronous I/O latency to a solid-state disk greatly increased (credits to Dave Kleikamp)
- fs/dyn_sync_cntrl: dynamic sync control (credits to faux123)
- fs/dyn_sync_cntrl: check dyn fsync control's active prior to performing fsync ops (credits to Andrew Bartholomew)
- fs/dyn_sync_cntrl: add some cache optimizations (credits to faux123)
- fs/dyn_sync_cntrl: add reboot notifier to force flush outstanding data (credits to faux123)
- fs/dyn_sync_cntrl: add kernel panic notifier to force flush outstanding data (credits to faux123)
- mm: Lowered swappiness 60->45 (credits to Christopher83)
- mm: Optimized SLUB memory allocator (credits to Christopher83)
- mm: Added filesystem dynamic read-ahead (Credits to Chad Gooldman) (credits to Christopher83)
- power: Added Battery Life eXtender (BLX) version 1 (Credits to Ezeekel) Adapted by Christopher83 for I9001 and I8150 devices - If the BLX charging limit is 100%, then the battery is fully charged as if the feature is not active - Wait some seconds after reaching the charging limit before stop the charging (credits to Christopher83)
- power: 100% battery notification after charger unplug (credits to Christopher83)
- rwsem: Optimized ARM RWSEM algorithm (credits to Ashwin Chaugule)
- rwsem-spinlock: Implement writer lock-stealing for better scalability (credits to Yuanhan Liu)
- rwsem: Implement writer lock-stealing for better scalability (credits to Alex Shi)
- rwsem: make the waiter type an enumeration rather than a bitmask (credits to Michel Lespinasse)
- rwsem: shorter spinlocked section in rwsem_down_failed_common() (credits to Michel Lespinasse)
- rwsem: move rwsem_down_failed_common code into rwsem_down_{read,write}_failed (credits to Michel Lespinasse)
- rwsem: simplify rwsem_down_read_failed (credits to Michel Lespinasse)
- rwsem: simplify rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: more agressive lock stealing in rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: use cmpxchg for trying to steal write lock (credits to Michel Lespinasse)
- rwsem: avoid taking wait_lock in rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: skip initial trylock in rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: simplify __rwsem_do_wake (credits to Michel Lespinasse)
- rwsem: implement support for write lock stealing on the fastpath (credits to Michel Lespinasse)
- rwsem: do not block readers at head of queue if other readers are active (credits to Michel Lespinasse)
- rwsem: no need for explicit signed longs (credits to Davidlohr Bueso)
- rwsem: check counter to avoid cmpxchg calls (credits to Davidlohr Bueso)
- sched: Disabled Gentle Fair Sleepers for better UI performance (credits to Christopher83)
- lib/memcopy: use glibc version (credits to Miao Xie)
- lib/string: use glibc version (credits to Miao Xie)
- mm: Dynamic management of dirty page writebacks (credits to Christopher83)
- fs: sync: Don't disable fdatasync() (credits to faux123)
- CK3 tweaks (Credits to Con Kolivas) (credits to Christopher83)
- hrtimer: Introduce effective timer slack (credits to Kirill A. Shutemov)
- hrtimer: Implement PR_GET_EFFECTIVE_TIMERSLACK (credits to Kirill A. Shutemov)
- cgroups: Introduce timer slack controller (credits to Kirill A. Shutemov)
- kernel: cgroup_timer_slack: Adaptations for 3.4 kernel (credits to Christopher83)
- kernel: cgroup_timer_slack: Dynamic management of timer slack (credits to Christopher83)
- staging: android: lowmemorykiller: Management of not killable processes (credits to Christopher83)
- fs/sync: Make sync() satisfy many requests with one invocation (credits to Paul E. McKenney)
- decompressor: Add LZ4 decompressor module (credits to Kyungsik Lee)
- lib: Add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- arm: Add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- lib: Add lz4 compressor module (credits to Chanho Min)
- crypto: Add lz4 Cryptographic API (credits to Chanho Min)
- lib/lz4/lz4_compress: fix macro usage error (credits to faux123)
- LZ4: compression/decompression signedness mismatch (v2) (credits to Sergey Senozhatsky)
- Makefile: Use -fno-inline-functions to build with Linaro GCC 4.8 toolchains (credits to Christopher83)
- acpuclock-7x30: Raised some standard UV and stock voltages for high OC cpu frequencies (credits to Christopher83)
- softirq: reduce latencies (credits to Eric Dumazet)
- fs: vfat: reduce the worst case latencies (credits to xiaogang)
- msm: kgsl: Add an input handler to power up the GPU on a touch event (credits to Tk-Glitch)
- ARM: be strict about FP exceptions in kernel mode (credits to mrg666)
- ARM: add support for kernel mode NEON (credits to mrg666)
- ARM: crypto: add NEON accelerated XOR implementation (credits to Ard Biesheuvel)
- ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled (credits to Ard Biesheuvel)
- ARM: move VFP init to an earlier boot stage (credits to Ard Biesheuvel)
- ARM: Perform the creation of procfs node for VFP later (credits to Christopher83)
- ARM: only allow kernel mode neon with AEABI This prevents the linker erroring with: (credits to Russell King)
- ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible (credits to Dave Martin)
- ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling (credits to Ard Biesheuvel)
- ARM: 7837/3: fix Thumb-2 bug in AES assembler code (credits to Ard Biesheuvel)
- crypto: create generic version of ablk_helper (credits to Ard Biesheuvel)
- ARM: pull in <asm/simd.h> from asm-generic (credits to Ard Biesheuvel)
- ARM: move AES typedefs and function prototypes to separate header (credits to Ard Biesheuvel)
- ARM: add support for bit sliced AES using NEON instructions (credits to Ard Biesheuvel)
- ARM: add .gitignore entry for aesbs-core.S (credits to Russell King)
- CRYPTO: Fix more AES build errors (credits to Russell King)
- workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues (credits to Viresh Kumar)
- workqueue: Add system wide power_efficient workqueues (credits to Viresh Kumar)
- block: queue work on power efficient wq (credits to Viresh Kumar)
- xsched: Optimize build_sched_domains() for saving first SD node for a cpu (credits to Viresh Kumar)
- PHYLIB: queue work on system_power_efficient_wq (credits to Viresh Kumar)
- ASoC: pcm: Use the power efficient workqueue for delayed powerdown (credits to Mark Brown)
- ASoC: jack: Use power efficient workqueue (credits to Luis Cruz)
- regulator: core: Use the power efficient workqueue for delayed powerdown (credits to Luis Cruz)
- ASM: word-at-a-time: make the interfaces truly generic (Chad Goodman) (credits to poondog)
- LIB: use generic strnlen_user and strncpy_from_user functions (Chad Goodman) (credits to poondog)
- ARM: dcache: select DCACHE_WORD_ACCESS for little-endian ARMv6+ CPUs (Chad Goodman) (credits to poondog)
- ARM: 7927/1: dcache: select DCACHE_WORD_ACCESS for big-endian CPUs (credits to Will Deacon)
- sched: Add sysinterface for GENTLE_FAIR_SLEEPERS (credits to Tk-Glitch)
- sched: Consider max cost of idle balance per sched domain (credits to faux123)
- sched: Periodically decay max cost of idle balance (credits to faux123)
- cpufreq: Optimize cpufreq_frequency_table_verify() (credits to Viresh Kumar)
- ancora : update board (credits to madridii)
- ancora: Increased audio volume on board side (credits to madridii)
- ancora: Lowered WIFI voltage (credits to madridii)
- ancora: Lowered display panel voltage (credits to madridii)
- ancora: Lowered Vibetonz voltage (credits to madridii)
- msm7x30: Update default and custom configs (credits to Christopher83)
- ancora: High memory allocations (credits to Christopher83)
- ancora: Add custom defconfigs (credits to Christopher83)
- Revert "mdp4_overlay_lcdc: Fixed wrong initialization of VSYNC" (credits to arco68)
- mmc: msm_sdcc: Advertise erase capability for ancora (credits to arco68)
- msm_fb: Fix backlight issue on ancora and ancora_tmo (credits to arco68)
- gpu: ion: Sync CMA caching logic with carveout heap. (credits to Blefish)
- defconfigs: Build crypto devices as modules (credits to arco68)
- msm: dma: Moving queue_work() function within spinlock (credits to Utsab Bose)
- msm: kgsl: Add the buffer user address to the debugfs memory list (credits to Jordan Crouse)
- msm: kgsl: use %pK to restrict printing GPU / memory addresses (credits to Jordan Crouse)
- sched: Reset rq->next_interval before going idle (credits to Srivatsa Vaddagiri)
- sched: re-calculate a cpu's next_balance point upon sched domain changes (credits to Srivatsa Vaddagiri)
- ARM: 7486/1: sched_clock: update epoch_cyc on resume (credits to Colin Cross)
- ARM: 7565/1: sched: stop sched_clock() during suspend (credits to Felipe Balbi 2)
- sched: Set MC (multi-core) sched domain's busy_factor attribute to 1 (credits to Srivatsa Vaddagiri)
- msm: kgsl: Cleanup the memory free list (credits to Jordan Crouse)

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

lafactorial, dec0der, ayesse, xlollomanx, gregoriaz, Istanblue, tycoo, hrinfrnlmjsty, makankaki, LeroViten and the other users for their support in testing

XDA:DevDB Information

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

Contributors

Christopher83

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

Kernel Special Features: Customized kernel 3.4.x for KK 4.4 rom (CM 11.0 and derivatives) with ION memory allocations

Version Information

Status: Stable

Current Stable Version: v3.0

Stable Release Date: 2015-04-05

Created 2014-06-17

Last Updated 2015-06-08