[Moto G 2015 Original Android Development] psndna88:
AGNi pureMOTO v3.3 (merlin/osprey)​

[IMG="AGNi pureMOTO kernel"]http://s6.postimg.org/v3lh6glwt/agni_xda.jpg[/IMG][IMG="AGNi pureMOTO kernel"]http://s6.postimg.org/v3lh6glwt/agni_xda.jpg[/IMG][IMG="AGNi pureMOTO kernel"]http://s6.postimg.org/v3lh6glwt/agni_xda.jpg[/IMG]​

For android 6.0.x CM/STOCK : (based on CM13 sources)

AGNi pureMOTO CHANGELOG:-

v3.3:-

Import adreno kgsl & iommu from LA.BR.1.3.2-04330-8976.0

fs: dynamic sync 2.0

tcp_output: set initial TCP window size to 64K (speed improvement)

sync CM13 sources

v3.2:-

sync CM commits

v3.1:-

sync lot of cm commits

Switch to UBERTC gcc-6.1.1-arm-eabi

added missing CPU oc options for osprey

v3.0:-

sync cm commits

implement 1.8 Ghz cpu + 650 Mhz gpu oc for osprey

enable USB-serial and USB-option support

msm: mdss: fix concurrency between add vsync handler and stop

mdss: lock the offlock mutex correctly

msm8916.dtsi: add qcom,fast-shutdown

various miscelleneous commits implemented

GPU frequencies selectable by AGNi control

v2.9:-

qpnp-vibrator/drv2605: add tunable to change methods for Stock & CM roms

fs/char_dev.c: remove pointless assignment from __register_chrdev_region()

workqueue: fix ghost PENDING flag while doing MQ IO

ASoC: msm: audio-effects: misc fixes in h/w accelerated effect

cpu: Defer smpboot kthread unparking until CPU known to scheduler

cpu: Handle smpboot_unpark_threads() uniformly

add cm/stock method of vibrator working in agni control

added faux sound control options in agni control

msm: mdss: fix possible out-of-bounds and overflow issue in mdp debugfs

msm: camera: ispif: Validate VFE num input during reset

msm: kgsl: Cast perfcounter query count to an unsigned int

msm: kgsl: Add missing checks for alloc size and sglen

ASoC: msm: audio-effects: fix stack overread and heap overwrite

f2fs: set f2fs garbage collection thread as freezable

v2.8:-

AGNi Control script fixes and additions

ARM: smp: add memory barrier before waking thread up

Update zram,zbud,zsmalloc,zpool,zcomp,zswap from MMI-MPD24.107-52

clusterplug/thunderplug: write module exit information to enable unloading when used as modules

v2.7:-

revert the previous zram updates

updates to lib/bitmap,idr,genalloc,sort,ratelimit,digsig,halfmd4,kfifo,lcm

usn & net commits

update lib/random32 and use e/frandom,prandom_u32 functions in many places

thunderplug: auto disable bcl hotplug when thunderplug is active by using the new hotplug_switch tunable in bcl

fix derps in zzmoove

Introducing my AGNi Control app with supported scripts:

-simplified settings at user's disposal! (more are to come)

-each selection in this app is related to a particular script, which is moved to init.d and executed and user settings are preserved on boot by init.d

-on-the-fly switching between thunderplug/clusterPlug/statehelper/No-hotplug options

-the app will lock some settings by read-only permissions, hence those are not changeable by other apps like 'Kernel Auditor', to have consistency of settings.

v2.6:-

disable Memory Resource Controller Swap Extension

disable Memory Resource Controller Kernel Memory accounting

disable RCU boosting

disable SCHED_SMT

Reworked the activation of selected hotplug-type and execution of agni's default settings on boot

set zram max_comp_streams: merlin=1

selinux: disable enforcing mode and set permanent permissive (solves all osprey settings issues, and some merlin permission denials as well)

v2.5:-

enable Zsmalloc's PGTABLE_MAPPING

enable Memory Resource Controller Swap Extension

enable Memory Resource Controller Kernel Memory accounting

enable Optimize very unlikely/likely branches (JUMP_LABEL)

enable VMALLOC_SAVING

disable NO_VM_RECLAIM

disable MMC_PERF_PROFILING

disable LOCKUP_DETECTOR

disable DEBUG_MUTEXES

disable DYNAMIC_DEBUG

netfilter: x_tables: check for size overflow

set touchboost frequency to 800Mhz for cpu0 (merlin)

set swappiness=60

set zram sizes: merlin=600MB, osprey=400MB

set zram max_comp_streams: merlin=3, osprey=1

v2.4:-

add support for GCC 6.0 and switch to UBERTC gcc-6.0-arm-eabi toolchain

includes my new compiled busybox [BusyBox v1.25.0_AGNi_kernel->psndna88@xda (2016-05-17 21:51:16 IST)]

ppp: take reference on channels netns

squash commit: update zram & zsmalloc

changed thunderplug threshold

enable filesystem-sync on suspend & fix ak09912 sensor (osprey)

zram size change (osprey 300MB)

v2.3:-

Update Adreno graphics driver

zram size changes (merlin: 450MB, osprey 200MB)

v2.2:-(focused on multitasking apps user experience)

sync cm sources (ALSA leak fixes)

ion: adjust system heap pool orders

mm: adjust page migration heuristic

enabled CONFIG_RCU_BOOST, CONFIG_MEMCG & disabled CONFIG_RMNET_DATA_DEBUG_PKT

Zram size and parameters tweaked

v2.1:- (focused on cpu tuning)

sync cm kernel sources

update cpu boost driver

lib: align source before using optimized implementation

video: Speed up console framebuffer imageblit function

rcu: Don't disable CPU hotplug during OOM notifiers

cpufreq: interactive changes

selinux: add security in-core xattr support for esdfs,f2fs,exfat

char: msm_smd_pkt: Reduce log severity of signals

lib: do_strncpy_from_user: Fix return error code for get_user failures

disabled some debugging

enable arm crypto crc32 support

enable cleancache

removed ksm for good

modified min cpufreq, thunderplug, interactive, adreno idler tunables

screen off wil force single-core mode, makes no difference to music playback

kernel tunable apps are not actually required as I have already tuned this for various types of workloads

(do not enable "set on boot" in kernel auditor for all sections before using this, else you may not get the modified tunables)

v2.0:- (cummuative changelog)

arm cortex-a53 optimisation

wifi prima: update to LA.BR.1.2.7_rb1.5

cpufreq: Implement lionfish governor

cpufreq: Implement ZZMOOVE v1.0 beta 8 governor for snapdragon

drivers/usb/gadget: Implement usb keyboard/mouse role on android [SEE BELOW]

Add support for ARMv8 crypto SHA1,SHA2,AES

various ARM updates

updates for lib:zlib_deflate, lib:crc32, lib:bitmap

block: CFQ updates and modifications

adaptation of zzmoove for osprey/merlin/lux

msm8916,msm8939: mild undervolted

fs: exfat updated to v1.2.19

drivers/cpufreq: Implement smartmax cpu governor

usb: add usb fast charge

msm8916: gpu: Add 465 MHz max & 100 Mhz min frequency (osprey)

msm8939: gpu: Add 100 Mhz frequency (merlin)

Implement adreno idler

drivers/char: Implement frandom v1.1

Added optimized ARM RWSEM algorithm.

Implement DT2W (double tap to wake)

Implement state notifier driver

Implement state_helper (osprey)

Implement Thunderplug

block: Add SIO I/O scheduler

cpufreq: Add Impulse governor

cpufreq: Add ElementalX governor without gboost (osprey)

msm8916: Implement CPU OC to 1.4 GHz (osprey)

Enable module building for thunderplug, state helper, cluster plug selectable in the installer (avoids reboots due to conflicts)

Selected hotplug-type module is loaded at boot by init.d

Made quadcore adpatibility for thunderplug (osprey)

Update sony xpad driver

mm: Optimize SLUB

Implemented Faux123 sound control GPL v3.6 (untested)

Highly modified installer, patches the ramdisk while installation, uses my own busybox

init.d scripts execution independent on rom's support

BCL: config handle enable/disable BCL hotplug of CPUs (disabled BCL hotplug for merlin)

option in installer to turn off BCL completely (merlin)

state_helper: Follow reverse sequence to online offline cores (osprey)

lowmemorykiller: Don't count swap cache pages twice

enable KSM support, disabled by default

enable advanced tcp/ip cogestion, default westwood

powersuspend: new PM kernel driver for Android w/o early_suspend

cpufreq: Persist governor policies across hotplug

video: mdss: squash commit updates, including MDSS color control

video: mdss: Cyanogenmod LiveDisplay driver (needs rom support)

msm: msm_bus: remove the buspm module from kernel

mm: improve migration heuristic

ALSA: usb-audio: avoid freeing umidi object twice

msm8939/dts: keep gpu to lowest frequency on screen suspended (be cool on screen off) [merlin]

Old changelogs v1.0-1.9 :

v1.0:-

initial plain build

v1.1:-

arm cortex-a53 optimisation

wifi prima: update to LA.BR.1.2.7_rb1.5

cpufreq: Implement lionfish governor

cpufreq: Implement ZZMOOVE v1.0 beta 8 governor for snapdragon

drivers/usb/gadget: Implement usb keyboard/mouse role on android SEE BELOW

v1.2:-

Add support for ARMv8 crypto SHA1,SHA2,AES

various ARM updates

updates for lib:zlib_deflate, lib:crc32, lib:bitmap

various kernel scheduler updates

block: CFQ updates and modifications

cpufreq: Attempt adaptation of zzmoove for osprey/merlin/lux

msm8916,msm8939: mild undervolted

v1.3:-

cpufreq: adaptation of zzmoove for osprey/merlin/lux - PART 2

Switch toolchain gcc-linaro-5.3-2016.02_armv8l-gnueabihf and set -march=armv8-a

fs: exfat updated to v1.2.19

video: mdss: squash commit updates, including MDSS color control -all credits to respective authors

cpufreq:adaptation of zzmoove for osprey/merlin/lux - PART 3

v1.4:-

drivers/cpufreq: Implement smartmax cpu governor

Implement power-efficient workqueues

usb: add usb fast charge

msm8916: gpu: Add 465 MHz max & 100 Mhz min frequency (osprey)

msm8939: gpu: Add 100 Mhz frequency (merlin)

Implement adreno idler

drivers/char: Implement frandom v1.1

drivers/char: random updates

lib/random32 updates

fs: ext4: use e/frandom, do not deplete entropy

Added optimized ARM RWSEM algorithm.

Implement DT2W (double tap to wake)

Writeback: Fix occasional slow sync

v1.5:-

Revert "Power efficient workqueues"

fs/buffer.c: increase the buffer-head per-CPU LRU size

add msm_hotplug driver

Implement state notifier driver (osprey)

Implement state_helper (osprey)

v1.6:-

Implement Thunderplug (merlin)

block: Add SIO I/O scheduler

cpufreq: Add Impulse governor & ElementalX governors [tuned for merlin/osprey]

msm8916: Implement CPU OC to 1.4 GHz (osprey)

v1.7:-

Enable module building for thunderplug, state helper, cluster plug selectable in the installer (avoids reboots due to conflicts)

Selected hotplug-type module is loaded at boot by init.d

Made quadcore adpatibility for thunderplug (osprey)

v1.8:-

Update sony xpad driver

Implemented Faux123 sound control GPL v3.6 (untested yet)

cpufreq: add Barry allen governor

Highly modified installer, patches the ramdisk while installation, uses my own busybox

init.d scripts execution independent on rom's support

v1.8_r2:-

BCL: config handle enable/disable BCL hotplug of CPUs (disabled BCL hotplug for merlin)

option in installer to turn off BCL completely (merlin)

state_helper: Follow reverse sequence to online offline cores (osprey)

v1.9:- (COOL DOWN)

cpufreq: remove gboost from ElementalX

Revert: "PM / Wakeup: Use rcu callbacks for better performance"

sched/fair: Fix fairness issue on migration

lowmemorykiller: Don't count swap cache pages twice

Remove Barry allen governor

drivers/devfreq: make adreno idler & msm_adreno_tz work properly with state_notifier

enabled state notifier (merlin)

msm8939/dts: keep 220 MHz gpu frequency as default minimum (merlin)

enable KSM support, disabled by default

enable advanced tcp/ip cogestion, default westwood

enable zbud

USB keyboard & mouse by touchscreen feature:-

Implemented from: here

Download the app for supporting this keyboard & mouse feature HERE

NOTE: zzmoove governor needs more tuning for this platform

DOWNLOADS:- HERE

XDA:DevDB Information

AGNi kernel, Kernel for the Moto G 2015

Contributors

psndna88

Source Code: https://github.com/psndna88/AGNi_pureMOTO.git

Kernel Special Features: Based on CM13 Sources with selectively picked mods/patches

Version Information

Status: Beta

Created 2016-04-27

Last Updated 2016-10-09