[HTC Rezound] dmeadows013:
NOTICE: This is COMPATIBLE with ALL AOSP ICS and STOCK ROMS based on the 3.12 OTA. This MAY or MAY NOT be compatible with Sense 4​

Just a statement regarding kernel source: The kernel source, like all others, is covered under the GPL Version 2. I have spent a lot of time on this kernel to benefit the community. If you want to use this kernel, I ask that you provide a link to the github and state who created it. Also, please, if you have a question related to the kernel, post in the forum. You will get an answer faster than if you had PM'd me, and the entire community will benefit because they will be able to see it. Thanks, and enjoy the kernel :)

Hello Rezound users:

This is my second but first real kernel project. I would like to thank faux123, Jonman, Chad0989, and xoomdev for helping me figure out what I'm doing with this. I hope to improve on this kernel as I learn more :)

What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.

[Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.

​

THIS KERNEL is BASED ON HTC Source Code. So it is COMPATIBLE ONLY WITH HTC Rezound ICS Sense/AOSP ICS Builds. (Although JB support is on the way :))

Please DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibilities (Forced Close).

FEATURES

Linaro Optimizations

These are optimizations created by the Linaro team. PLEASE NOTE: This kernel was not compiled with Linaro. I got too many build errors. At some point, it may be compiled with the Linaro toolchain, but not right now.

Lagfree Governor (Balanced)

Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.

Lazy Governor (Battery)

This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.

LulzActive V2 Governor (Balanced)

Basically interactive governor with added smartass bits and variable (as opposed to fixed amout) frequency scaling, based on currently occuring cpu loads. Has, like smartass, a sleep profile built-in.

SmartAssV2 Governor (Balanced)

Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.

Interactive Governor (Performance)

Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.

Fair Budget Queue (BFQ I/O scheduler)

This I/O scheduler is an improvement on top of Completely Fair Queue (CFQ). CFQ is fair in terms of time but not in terms of throughput / bandwidth, so BFQ make sure that both time and throughput / bandwidth are balanced across all requests.

(Thanks to faux123 and HipKat for the Governor/BFQ explanations :))

Kernel Files:

Ice Cream Sandwich (Android 4.0.3) (Linux 3.0.42)

[ BFQ ] (AOSP)

==> UBER Beta .001 (1.5 GHz, GPU @ 320MHz) <==

[ BFQ ] (SENSE)

==> UBER Beta .001 (1.5 GHz, GPU @ 320MHz) <==

Optional Under voltage

[ to over volt ALL frequencies by 25000 uv (microvolts) ]
echo "+25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
[ to under volt ALL frequencies by 25000 uv (microvolts) ]
echo "-25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels

[ to set a specific frequency (ie 1.18 GHz)
with a specific voltage (ie 1.0875 volts) ]
echo "1188000 1087500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels

CPU Frequency Voltage Table Example

192000: 812500
310500: 812500
384000: 812500
432000: 812500
486000: 837500
540000: 850000
594000: 862500
648000: 875000
702000: 900000
756000: 925000
810000: 937500
864000: 962500
918000: 962500
972000: 962500
1026000: 975000
1080000: 987500
1134000: 1000000
1188000: 1012500
1242000: 1025000
1296000: 1050000
1350000: 1075000
1404000: 1100000
1458000: 1112500
1512000: 1125000
1566000: 1150000

Optional: Stock Clock Frequencies for Dual CPUs

su
echo 192000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1188000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

echo 1 > /sys/devices/system/cpu/cpu1/cpufreq/online
echo 192000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo 1188000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

Low Voltage - Under Volt the processor, therefore uses Less Battery, but NOT ALL CHIPS can handle Under Volt.. If you experience instability, try the Stock Voltage Version.

Stock Voltage - Uses the voltage values from ORIGINAL HTC Kernel Source.

There are NO PERFORMANCE DIFFERENCE between the Under Volted and Stock Voltage versions!

Installation Instructions:

Here's a step by step instruction to install this kernel:

1. download the above file (via phone directly or to a PC)

2. copy the downloaded zip file to sdcard

3. Boot to Recovery and wipe cache/dalvik

5. Flash the kernel, then let it reboot to the bootloader and flash that :)

Note: After FLASHING, the first reboot may take longer than usual, please be patient... After the first reboot, it may lag during initial load (let everything finish loading). Once everything is loaded and phone is ready for use, reboot the phone a 2nd time and the lag will be gone and everything should be good...

BUGS:

Fast charge?

You tell me :)

Not All DEVICES ARE CREATED EQUAL

TO DO:

Implement voltage presets

Moar governors/IO schedulers?

Fix some bugs... It is a beta after all :)

Disclaimer: I do not take responsibility for anything that happens to your phone as a result of this kernel

My Github Complying with GPL

If you find this Kernel super awesome, feel free to hit the [Thanks] or [Donate] button below