summaryrefslogtreecommitdiff
path: root/init.power.sh
diff options
context:
space:
mode:
authorThierry Strudel <tstrudel@google.com>2017-03-02 16:50:16 -0800
committerJohn Dias <joaodias@google.com>2017-03-04 23:34:45 -0800
commit4e18dc435b633b7b6adceda10f84f29d081f0d6a (patch)
tree394b408362b9f8e8221311af54f0f599bc379f43 /init.power.sh
parent31d86a69a6d6f8878aa5a45387b6ef7f3a3d44d4 (diff)
downloadwahoo-4e18dc435b633b7b6adceda10f84f29d081f0d6a.tar.gz
Import common file from device specific directory
Test: boot, basic functionality Change-Id: I9c07718b481730c3388f99c5e1eff17c9fd75a7b Signed-off-by: Thierry Strudel <tstrudel@google.com>
Diffstat (limited to 'init.power.sh')
-rw-r--r--init.power.sh76
1 files changed, 76 insertions, 0 deletions
diff --git a/init.power.sh b/init.power.sh
new file mode 100644
index 00000000..e2c7704b
--- /dev/null
+++ b/init.power.sh
@@ -0,0 +1,76 @@
+#!/system/bin/sh
+
+################################################################################
+# helper functions to allow Android init like script
+
+function write() {
+ echo -n $2 > $1
+}
+
+function copy() {
+ cat $1 > $2
+}
+
+################################################################################
+
+soc_revision=`cat /sys/devices/soc0/revision`
+if [ "$soc_revision" == "1.0" ]; then
+ # Disable retention low power modes
+ write /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled N
+ write /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled N
+ # Enable all LPMs by default
+ write /sys/module/lpm_levels/parameters/sleep_disabled N
+fi
+
+# disable thermal hotplug to switch governor
+write /sys/module/msm_thermal/core_control/enabled 0
+
+# bring back main cores CPU 0,4
+write /sys/devices/system/cpu/cpu0/online 1
+write /sys/devices/system/cpu/cpu4/online 1
+
+# Setting b.L scheduler parameters
+write /proc/sys/kernel/sched_migration_fixup 1
+write /proc/sys/kernel/sched_upmigrate 99
+write /proc/sys/kernel/sched_downmigrate 85
+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 5
+write /proc/sys/kernel/sched_restrict_cluster_spill 1
+
+# configure governor settings for little cluster
+write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "sched"
+
+# configure governor settings for big cluster
+write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "sched"
+
+# re-enable thermal hotplug
+write /sys/module/msm_thermal/core_control/enabled 1
+
+# 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 "3143 5859 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
+
+write /sys/class/devfreq/soc:qcom,mincpubw/governor "cpufreq"
+