#!/system/bin/sh ################################################################################ # helper functions to allow Android init like script function write() { echo -n $2 > $1 } function copy() { cat $1 > $2 } ################################################################################ # disable thermal hotplug to switch governor write /sys/module/msm_thermal/core_control/enabled 0 # bring back main cores CPU 0,2 write /sys/devices/system/cpu/cpu0/online 1 write /sys/devices/system/cpu/cpu2/online 1 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load 1 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay 19000 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 90 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 20000 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 960000 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 1 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads 80 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 19000 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis 79000 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif 0 # EAS: Capping the max frequency of silver core to 1.6GHz write /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 1593600 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor interactive write /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load 1 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif 1 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay "19000 1400000:39000 1700000:39000" write /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load 90 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate 20000 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq 1248000 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy 1 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads "85 1500000:90 1800000:95" write /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time 19000 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis 39000 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif 0 # if EAS is present, switch to sched governor (no effect if not EAS) write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "sched" write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "sched" # re-enable thermal hotplug write /sys/module/msm_thermal/core_control/enabled 1 # input boost configuration write /sys/module/cpu_boost/parameters/input_boost_freq "0:1324800 2:1324800" write /sys/module/cpu_boost/parameters/input_boost_ms 40 # Setting b.L scheduler parameters write /proc/sys/kernel/sched_boost 0 write /proc/sys/kernel/sched_migration_fixup 1 write /proc/sys/kernel/sched_upmigrate 95 write /proc/sys/kernel/sched_downmigrate 90 write /proc/sys/kernel/sched_freq_inc_notify 400000 write /proc/sys/kernel/sched_freq_dec_notify 400000 write /proc/sys/kernel/sched_spill_nr_run 3 write /proc/sys/kernel/sched_init_task_load 100 # Enable bus-dcvs for cpubw in /sys/class/devfreq/*qcom,cpubw* ; do write $cpubw/governor "bw_hwmon" write $cpubw/polling_interval 50 write $cpubw/min_freq 1525 write $cpubw/bw_hwmon/mbps_zones "1525 5195 11863 13763" write $cpubw/bw_hwmon/sample_ms 4 write $cpubw/bw_hwmon/io_percent 34 write $cpubw/bw_hwmon/hist_memory 20 write $cpubw/bw_hwmon/hyst_length 10 write $cpubw/bw_hwmon/low_power_ceil_mbps 0 write $cpubw/bw_hwmon/low_power_io_percent 34 write $cpubw/bw_hwmon/low_power_delay 20 write $cpubw/bw_hwmon/guard_band_mbps 0 write $cpubw/bw_hwmon/up_scale 250 write $cpubw/bw_hwmon/idle_mbps 1600 done for memlat in /sys/class/devfreq/*qcom,memlat-cpu* ; do write $memlat/governor "mem_latency" write $memlat/polling_interval 10 done # Enable all LPMs by default # This will enable C4, D4, D3, E4 and M3 LPMs write /sys/module/lpm_levels/parameters/sleep_disabled N # On debuggable builds, enable console_suspend if uart is enabled to save power # Otherwise, disable console_suspend to get better logging for kernel crashes if [[ $(getprop ro.debuggable) == "1" && ! -e /sys/class/tty/ttyHSL0 ]] then write /sys/module/printk/parameters/console_suspend N fi