[Sprint HTC One (M8)] MassStash:
Infoz

Hypernova version has all kinds of stuff that's been added from the good [MENTION=3292224]franciscofranco[/MENTION], and the most important and amazing, IMHO, is the mako_hotplug_driver. With this, we have eliminated most governors, and now exclusively run interactive. We now also have some extra options with this interactive governor that we can set to customize the user experience smoothness, and battery life. Down below is how to work init.d scripts, which is suggested as a great set it and forget it method, but if you are trying to mess with things quickly and in user land with an app, you will have to use francos. Unfortunately, our phone is only supported by the paid version also, so looks like it's time to open the wallets and show your appreciation! Bought this personally as soon as I got the hotplug up and running. 100% worth it.

Advanced Interactive Governor Tweaks; Buttery smooth and insane battery life!

Here's some info on the pieces used from his kernel, and the app, and the guy himself it seems.

Information about the kernel

People generally change kernels for battery savings and to add features the stock one doesn't offer.
Franco's kernel has several advantages over the stock one in terms of battery saving saving features,
one of my favourite being the removal of MPdecision which in lay-mans terms changes the min and
maximum speed the CPU can run at based upon live battery temperature checks. Franco's hot plug
driver always keeps 2 cores online and always them to scale from 300mhz to 2.3ghz and based upon
load conditions will online cores 3 and 4 if required. When you touch the screen the screen the CPU
speed is boosted to approximately 1.5ghz for just over a quarter of a second and when load is reduced
the CPU speed is able to lower quickly back to lower speeds thanks to his tuned interactive
governor. Franco has created a governor for the GPU named interactive which works very much like
how the CPU equivilant does. Franco has added some newer drivers for WiFi which also helps reduce
idle battery drain while your on a busy WiFi network. Franco has also added an interface where you
can boost microphone, speaker and headphone gain levels for audio enthusiasts as well as an
interface to allow screen calibration and load pre set profiles to improve your experience with how
your display looks! There's clock speed control, voltage control, governor control, hot plug control.
You get the idea its full of cool features which can be controlled with the paid Franco.Kernel
Application (see later in the thread)

[IMG="FK"]http://img.tapatalk.com/d/14/02/23/5y7egebu.jpg[/IMG]

Here are some lines I've found around the interwebs as a reference for myself for some time now. All of this is set, but hey, it never hurts to learn how it all works behind the scenes.

This is not a shell script, and cannot be run as one as-is; it's just a bunch of commands. UV should never be set with init.d in case they are unstable.

These are old values, some may be good, some may not. Please ask, or do some research on what is suggested for current cpu and phones.

# CPU Clock
echo 1228800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 537600 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq

# UV
echo "1450 1425 1400 1375 1350 1250 1225 1200 1050 900 850 800" > /sys/class/misc/customvoltage/mpu_voltages
echo "1375 1291 1140 950" > /sys/class/misc/customvoltage/iva_voltages
echo "1150 1050 950" > /sys/class/misc/customvoltage/core_voltages

# SR
echo 1 > /sys/kernel/debug/smartreflex/sr_mpu/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_iva/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_core/autocomp # CORE no longer SR calibrated on FK

# Governor
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/boost
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
echo 95 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 729600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo 45000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack

# I/O Scheduler
echo 1024 > /sys/block/mmcblk0/queue/read_ahead_kb

echo "deadline" > /sys/block/mmcblk0/queue/scheduler
echo 500 > /sys/block/mmcblk0/queue/iosched/read_expire
echo 5000 > /sys/block/mmcblk0/queue/iosched/write_expire
echo 4 > /sys/block/mmcblk0/queue/iosched/writes_starved
echo 0 > /sys/block/mmcblk0/queue/iosched/front_merges
echo 1 > /sys/block/mmcblk0/queue/iosched/fifo_batch

echo "row" > /sys/block/mmcblk0/queue/scheduler
echo 100 > /sys/block/mmcblk0/queue/iosched/hp_read_quantum
echo 100 > /sys/block/mmcblk0/queue/iosched/rp_read_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_read_quantum
echo 2 > /sys/block/mmcblk0/queue/iosched/hp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_write_quantum
echo 10 > /sys/block/mmcblk0/queue/iosched/read_idle
echo 20 > /sys/block/mmcblk0/queue/iosched/read_idle_freq

echo "cfq" > /sys/block/mmcblk0/queue/scheduler
echo 8 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 93 > /sys/block/mmcblk0/queue/iosched/slice_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/slice_async
echo 2 > /sys/block/mmcblk0/queue/iosched/slice_async_rq
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/group_idle
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency

echo "bfq" > /sys/block/mmcblk0/queue/scheduler
echo 4 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/max_budget
echo 4 > /sys/block/mmcblk0/queue/iosched/max_budget_async_rq
echo 125 > /sys/block/mmcblk0/queue/iosched/timeout_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/timeout_async
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
echo 20 > /sys/block/mmcblk0/queue/iosched/raising_coeff
echo 256 > /sys/block/mmcblk0/queue/iosched/raising_max_time
echo 7000 > /sys/block/mmcblk0/queue/iosched/raising_max_softrt_rate
echo 304 > /sys/block/mmcblk0/queue/iosched/raising_rt_max_time
echo 2000 > /sys/block/mmcblk0/queue/iosched/raising_min_idle_time
echo 500 > /sys/block/mmcblk0/queue/iosched/raising_min_inter_arr_async
echo "" > /sys/block/mmcblk0/queue/iosched/weights

# CAB
echo 1 > /sys/class/backlight/s6e8aa0/acl_set

# TCP Congestion Avoidance Algorithm
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control;

# N7-specific

echo 500 > /sys/devices/system/cpu/cpu0/cpufreq/cpu_lp_max # LP core no longer used on FK

echo "1125 1100 1075 1050 1025 1000 975 950 925 900 875 850 825" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

echo 2 > /sys/class/misc/tegra_hotplug_control/cores_on_touch
echo 60 > /sys/class/misc/tegra_hotplug_control/first_level
echo 50 > /sys/class/misc/tegra_hotplug_control/second_level # No longer used in newer driver in FK
echo 25 > /sys/class/misc/tegra_hotplug_control/third_level # No longer used in newer driver in FK

echo 0 > /sys/devices/tegradc.0/smartdimmer/enable

Here's an awesome breakdown and research page for voltages most importantly pertaining to PVS values and overclocking.

download link:
PVS Research.xls (http://xdaforums.com/attachment.php?attachmentid=2836827&stc=1&d=1404681790)

best max frequency (sweet performance/power spot):

MSM8974AB 2.3ghz - 1.34ghz
MSM8974AC 2.5ghz - 1.57ghz
MSM8974v2 2.2ghz - 1.34ghz
APQ8064 1.7ghz - 1.24ghz
APQ8064T 1.9ghz - 1.35ghz

best screen-off frequency (this varies if you try higher pvs settings):

Snapdragon 801 2.3ghz MSM8974AB - One M8
MSM8974AB 2.3ghz PVS 0 - 300mhz
MSM8974AB 2.3ghz PVS 1 - 346mhz
MSM8974AB 2.3ghz PVS 2 - 422mhz
MSM8974AB 2.3ghz PVS 3 - 499mhz
MSM8974AB 2.3ghz PVS 4 - 576mhz
MSM8974AB 2.3ghz PVS 5 - 652mhz
MSM8974AB 2.3ghz PVS 6 - 499mhz
MSM8974AB 2.3ghz PVS 7 - 576mhz
MSM8974AB 2.3ghz PVS 8 - 652mhz
MSM8974AB 2.3ghz PVS 9 - 729mhz
MSM8974AB 2.3ghz PVS 10 - 806mhz
MSM8974AB 2.3ghz PVS 11 - 883mhz
MSM8974AB 2.3ghz PVS 12 - 960mhz
MSM8974AB 2.3ghz PVS 13 - 1036mhz
MSM8974AB 2.3ghz PVS 14 - 960mhz
MSM8974AB 2.3ghz PVS 15 - 1036mhz

Snapdragon 801 2.5ghz MSM8974AC - Galaxy S5
MSM8974AC 2.5ghz PVS 0 - 422mhz
MSM8974AC 2.5ghz PVS 1 - 499mhz
MSM8974AC 2.5ghz PVS 2 - 576mhz
MSM8974AC 2.5ghz PVS 3 - 652mhz
MSM8974AC 2.5ghz PVS 4 - 729mhz
MSM8974AC 2.5ghz PVS 5 - 806mhz
MSM8974AC 2.5ghz PVS 6 - 652mhz
MSM8974AC 2.5ghz PVS 7 - 729mhz
MSM8974AC 2.5ghz PVS 8 - 806mhz
MSM8974AC 2.5ghz PVS 9 - 883mhz
MSM8974AC 2.5ghz PVS 10 - 960mhz
MSM8974AC 2.5ghz PVS 11 - 1036mhz
MSM8974AC 2.5ghz PVS 12 - 1113mhz
MSM8974AC 2.5ghz PVS 13 - 1190mhz
MSM8974AC 2.5ghz PVS 14 - 1113mhz
MSM8974AC 2.5ghz PVS 15 - 1190mhz

Snapdragon 800v2 2.2ghz MSM8974v2
MSM8974v2 2.2ghz PVS 0 - 345mhz
MSM8974v2 2.2ghz PVS 1 - 499mhz
MSM8974v2 2.2ghz PVS 2 - 422mhz
MSM8974v2 2.2ghz PVS 3 - 499mhz
MSM8974v2 2.2ghz PVS 4 - 576mhz
MSM8974v2 2.2ghz PVS 5 - 499mhz
MSM8974v2 2.2ghz PVS 6 - 576mhz

Snapdragon 600 1.7ghz APQ8064 - One M7
APQ8064 1.7ghz PVS 0 - 594mhz
APQ8064 1.7ghz PVS 1 - 594mhz
APQ8064 1.7ghz PVS 2 - 702mhz
APQ8064 1.7ghz PVS 3 - 810mhz
APQ8064 1.7ghz PVS 4 - 702mhz
APQ8064 1.7ghz PVS 5 - 810mhz
APQ8064 1.7ghz PVS 6 - 702mhz

Snapdragon 600 1.9ghz APQ8064T - Galaxy S4
APQ8064T 1.9ghz PVS 0 - 702mhz
APQ8064T 1.9ghz PVS 1 - 702mhz
APQ8064T 1.9ghz PVS 2 - 702mhz
APQ8064T 1.9ghz PVS 3 - 810mhz
APQ8064T 1.9ghz PVS 4 - 702mhz
APQ8064T 1.9ghz PVS 5 - 702mhz
APQ8064T 1.9ghz PVS 6 - 702mhz

best min frequency:

lowest possible setting (300mhz in case of MSM8974)

i highly recommend to run those values (exept if you are actually playing demanding 3d games).
use trickster mod frequency lock feature to do so. you will experience amazing battery life.

how to get the maximum battery life:

if you have a MSM8974AB pvs 6 for example, try the following steps:
try the next higher pvs levels (pvs7). don't try AC pvs values on AB chips.
AB chips are binned for lower frequencies while AC are binned for higher frequencies (duh).
so if you have a AB chip, work your way up the AB pvs values until you have freezes or similar and move back.
if you have a AC chip, work your way up the AC pvs values etc...
if you found highest setting that does not cause any problems after intensive testing and usage:
congratulations, you did it.

how to get the maximum frequency:

first try higher than stock maximum clock and see how it behaves.
if you don't reach your desired clockspeed, try the next lower pvs setting of your chip. yes, i said LOWER.
this gives the processor more voltage to reach higher overclocks.
i don't recommend it tho since we all want our phones to last as long as possible usually.

Thank you very much to [MENTION=4684315]flar2[/MENTION] for all his work, and assisting people like me to port it to a device that otherwise would have no such love!

Gigantic thanks to [MENTION=3292224]franciscofranco[/MENTION] for his additions, fixes, and mako_hotplug!

Thank you to [MENTION=3601255]Evolutionmods[/MENTION] for helping me get this started, and for crucial fixes I would have no idea how to fix!

Thank you to [MENTION=3540189]NineInchNails[/MENTION]

[MENTION=1162986]Captain_Throwback[/MENTION]

[MENTION=2972811]Vinchenzop[/MENTION]

[MENTION=5168775]Dubbsy[/MENTION]

[MENTION=1975745]Grommish[/MENTION]

[MENTION=3236955]Treken[/MENTION]

These guys all have helped in very pivotal ways ,and I would not be at the understanding of android that I am today without them. Truly, thank you for being awesome helpful people!

Last but not least, thanks to these doods for helping test before release!

[MENTION=4059037]kaosb0x[/MENTION]

[MENTION=942177]shadowxaero[/MENTION]

[MENTION=4824548]stovo06[/MENTION]

[MENTION=2666372]dandan2980[/MENTION]

Good one on mpdecision among other good stuff

Governors and schedulers explained:

http://xdaforums.com/showthread.php?t=1687578

http://xdaforums.com/galaxy-s2/general/ref-kernel-governors-modules-o-t1369817

http://tinzdroid.blogspot.com/2012/07/android-kernel-governors-modules-io.html

http://xdaforums.com/showpost.php?p=21638852&postcount=56

PVS explained:

https://developer.qualcomm.com/forum/qdn-forums/general-discussion/27244

http://xdaforums.com/showthread.php?t=2228246

http://www.oppoforums.com/threads/qualcomm-cpu-binning-is-yours-slow-nominal-fast-or-faster.2842/