1#!/vendor/bin/sh 2 3################################################################################ 4# helper functions to allow Android init like script 5 6function write() { 7 echo -n $2 > $1 8} 9 10function copy() { 11 cat $1 > $2 12} 13 14################################################################################ 15 16# disable thermal hotplug to switch governor 17write /sys/module/msm_thermal/core_control/enabled 0 18 19# bring back main cores CPU 0,2 20write /sys/devices/system/cpu/cpu0/online 1 21write /sys/devices/system/cpu/cpu2/online 1 22 23write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive 24write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load 1 25write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1 26write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay 19000 27write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 90 28write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 20000 29write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 960000 30write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 1 31write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads 80 32write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 19000 33write /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis 79000 34write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000 35write /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif 0 36 37# EAS: Capping the max frequency of silver core to 1.6GHz 38write /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 1593600 39 40write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor interactive 41write /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load 1 42write /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif 1 43write /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay "19000 1400000:39000 1700000:39000" 44 45write /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load 90 46write /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate 20000 47write /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq 1248000 48write /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy 1 49write /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads "85 1500000:90 1800000:95" 50 51write /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time 19000 52write /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis 39000 53write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000 54write /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif 0 55 56# if EAS is present, switch to sched governor (no effect if not EAS) 57write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "sched" 58write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "sched" 59 60# re-enable thermal hotplug 61write /sys/module/msm_thermal/core_control/enabled 1 62 63# input boost configuration 64write /sys/module/cpu_boost/parameters/input_boost_freq "0:1324800 2:1324800" 65write /sys/module/cpu_boost/parameters/input_boost_ms 40 66 67# Setting b.L scheduler parameters 68write /proc/sys/kernel/sched_migration_fixup 1 69write /proc/sys/kernel/sched_upmigrate 95 70write /proc/sys/kernel/sched_downmigrate 90 71write /proc/sys/kernel/sched_freq_inc_notify 400000 72write /proc/sys/kernel/sched_freq_dec_notify 400000 73write /proc/sys/kernel/sched_spill_nr_run 3 74write /proc/sys/kernel/sched_init_task_load 100 75 76# Enable bus-dcvs 77for cpubw in /sys/class/devfreq/*qcom,cpubw* ; do 78 write $cpubw/governor "bw_hwmon" 79 write $cpubw/polling_interval 50 80 write $cpubw/min_freq 1525 81 write $cpubw/bw_hwmon/mbps_zones "1525 5195 11863 13763" 82 write $cpubw/bw_hwmon/sample_ms 4 83 write $cpubw/bw_hwmon/io_percent 34 84 write $cpubw/bw_hwmon/hist_memory 20 85 write $cpubw/bw_hwmon/hyst_length 10 86 write $cpubw/bw_hwmon/low_power_ceil_mbps 0 87 write $cpubw/bw_hwmon/low_power_io_percent 34 88 write $cpubw/bw_hwmon/low_power_delay 20 89 write $cpubw/bw_hwmon/guard_band_mbps 0 90 write $cpubw/bw_hwmon/up_scale 250 91 write $cpubw/bw_hwmon/idle_mbps 1600 92done 93 94for memlat in /sys/class/devfreq/*qcom,memlat-cpu* ; do 95 write $memlat/governor "mem_latency" 96 write $memlat/polling_interval 10 97done 98 99# Enable all LPMs by default 100# This will enable C4, D4, D3, E4 and M3 LPMs 101write /sys/module/lpm_levels/parameters/sleep_disabled N 102 103# On debuggable builds, enable console_suspend if uart is enabled to save power 104# Otherwise, disable console_suspend to get better logging for kernel crashes 105if [[ $(getprop ro.debuggable) == "1" && ! -e /sys/class/tty/ttyHSL0 ]] 106then 107 write /sys/module/printk/parameters/console_suspend N 108fi 109