[Sony Xperia L] Shivam Kuchhal:
Phantom Kernel v8

Okay people, its finally here!

I have done full rebase to CAF and some exciting and surprising features await you. This kernel can now be used on all new KitKat ROMs and it'll work perfectly with all of them.

Now, going down to the list of features:

Updated whole source with latest CAF changes(whole load of changes done), even our default CAF kernel doesn't have these changes yet.

Updated Prima WLAN source to v3.2.7.47 and other upstream changes. Now expect even better WiFi connectivity. And again, even our default CAF kernel doesn't have these changes yet. :P

Ported USB Fast Charge. Now enjoy AC charging current with USB ports as modern day USB ports are able to give output of up to 1500 mA and we're using only 500 mA by default. :P

Userspace voltage control.

Enabled Westwood TCP Congession and set it as default.

Hell load of memory optimization flags implemented in kernel for better stability and performance.

Enabled graphite support in kernel. Now it won't stick to your ROM only.

Compiled using latest Cortex A15 optimized Linaro 4.8 toolchain(smoothness redefined).

Fixed a recent kernel security bug noticed.Commit

Added intelli-active governor.

Added lionheart governor.

Added ROW scheduling algorithm.

Added BFQ scheduling algorithm and that too latest.

Disabled Gentle Fair Sleepers and enabled ARCH_POWER(more UI responsiveness).

Enhanced hotplug efficiency with a few fixes here and there.

Changed initial readahead window size calculation, so its 4x to the size of initial request regarless VM readahead size.

Passed readahead info to I/O scheduler so that it can increase the read throughout.Commit

Added optimized AES and SHA1 routines. 50% improvement in IPsec/TCP throughout for tunnels using AES128/SHA1.

TWRP 2.7.0.0

Changes to interactive governor:

Brought in line with Google's 3.4

Fix uninitialized spinlock.

Add checks for error return from cpufreq_frequency_table_target, and be less noisy on the existing call with an error check. CPU hotplug and

system shutdown may cause this call to return.

Reschedule load sampling timer after timestamp of sample start taken, hold spinlock across entire sequence to avoid preemption. Avoid the

WARN for zero time delta in the load sampling timer function.

Check for idle time delta less than elapsed time delta, avoid underflow computing active time.

Fix race on cpufreq TRANSITION notifier.

Reschedule timer if max frequency is raised.

Remove a trailing whitespace from target_loads and above_hispeed_delay. Problem happens when user-space program tried to restore parameters that saved before changing parameters. In this case was returned error.

Change min_sample_time to 100ms when running at max frequency.

Allow for an error of 1 ms while taking into account above_hispeed_delay for a frequency.

Sync frequency feature.

When the interactive governor selects to run at max frequency it doesn't re-schedule the timer until it hits an idle. This change checks if the CPU has been continuously busy for last 100ms on hitting an idle start. If yes, then floor_validate_time is reset so that the CPU stays at max frequency for at least another 100 ms before stepping down. This is an important feature for detecting CPU intensive workloads which require high frequencies for achieving better performance.

Removed the trace_cpufreq_interactive_idle_start. Also fixed a crash resulting from accessing NULL policy before taking the pcpu->enable_sem lock. The policy can be NULL if the core is hotplugged out before the enable_sem lock is taken.

Check for up_threshold_any_cpu_freq instead of sync_freq to boost the frequency to sync_freq.

Change the load threshold name from sync_freq_load_threshold to up_threshold_any_cpu_load.

Do not consider CPUs with load less than up_threshold_any_cpu_load while evaluating max load across CPUs.

Use min_sample_time to step down from max frequencies if sampling_down_factor is set to zero.

Fix null pointer dereference,

Make sure that timers cpu_timer and cpu_slack_timer deactivated before addition of new.

Restructured CPUFREQ_GOV_LIMITS.

Turn boost_pulse off on boost off.

Changes to ondemand-

Change frequency sync code to use per-CPU kthreads.

Turn off frequency synchronization of CPUs on thread migrations when powersave bias is enabled. This is done to prevent re-arming of the dbs timer work (which is cancelled by store_powersave_bias) by the sync_thread.

Originally CPU frequency were boosted for any input event. In some case, sensor sends a lot of input event, which keep CPU in high frequency. CPU frequency only need to be boosted when real user interaction happens.

Fix update_sampling_rate race with hotplug.

Fix hotplug deadlock with store_powersave_bias.

Fix timer-related list corruption in store_powersave_bias().

Changes to cpufreq management:

Fix policy getting stuck when user & kernel min/max don't overlap.

When ondemand governor decides to ramp down the frequency, the missing check for frequency being lower than optimal_freq was causing frequency to be ramped down to optimal_freq even if the frequency decided by ondemand governor was higher.

Synchronize CPU frequency on thread migration.

Use dedicated high-priority workqueues.

Fix broken uevents for cpufreq governor and cpu devices.

...and some other patches which can't be described.

Some stuff already there in default kernel-

exFat support for external storages.

Vibrator intensity control.

Toggles and controls for everything can be found in Trickster MOD app and remember to undervolt voltages by -62. :)

And I haven't added OC in this kernel because I don't want to make it unstable and I think its smooth enough on 1.2 Ghz itself.

Download-

http://d-h.st/KAG