diff options
author | Robb Glasser <rglasser@google.com> | 2017-11-17 15:19:30 -0800 |
---|---|---|
committer | Robb Glasser <rglasser@google.com> | 2017-11-22 15:36:06 -0800 |
commit | 30ecafeffccb997af944fdc69e266fb59ccc0f5c (patch) | |
tree | f1b8c56d96eafad05b1532153b435efc31eb09aa | |
parent | 9d9ed3c176108fa46981248c6bbcdf6af80415ff (diff) | |
download | bonito-30ecafeffccb997af944fdc69e266fb59ccc0f5c.tar.gz |
Update power init scripts
Updating power init scripts with the latest settings for crosshatch and
enabling the Power HAL.
Bug: 69270928
Test: Compiled and booted
Test: Checked logcat for errors
Test: Verified writes made it to respective nodes
Change-Id: I417126cd1a56a82d53a1cf7455beccbd6240e76c
-rw-r--r-- | device.mk | 2 | ||||
-rw-r--r-- | init.hardware.rc | 45 | ||||
-rw-r--r-- | init.power.rc | 68 | ||||
-rw-r--r-- | init.power.sh | 47 |
4 files changed, 101 insertions, 61 deletions
@@ -58,7 +58,7 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).rc \ $(LOCAL_PATH)/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).usb.rc \ $(LOCAL_PATH)/ueventd.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ - $(LOCAL_PATH)/init.power.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.power.sh \ + $(LOCAL_PATH)/init.power.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).power.rc \ $(LOCAL_PATH)/init.radio.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.radio.sh \ $(LOCAL_PATH)/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl \ $(LOCAL_PATH)/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc \ diff --git a/init.hardware.rc b/init.hardware.rc index 7b1fddee..0c343e3a 100644 --- a/init.hardware.rc +++ b/init.hardware.rc @@ -14,6 +14,7 @@ # limitations under the License. # +import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power.rc import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.usb.rc on charger @@ -24,6 +25,7 @@ on charger write /sys/devices/system/cpu/cpu6/online 0 write /sys/devices/system/cpu/cpu7/online 0 wait /dev/block/bootdevice + write /sys/module/lpm_levels/parameters/sleep_disabled 0 service charger /charger class charger @@ -34,6 +36,9 @@ on early-init chmod 0755 /sys/kernel/debug on init + # Disable powersaving + write /sys/module/lpm_levels/parameters/sleep_disabled 1 + # Loading kernel modules in background start insmod_sh @@ -41,9 +46,29 @@ on init symlink /sdcard /mnt/sdcard symlink /sdcard /storage/sdcard0 - # STOPSHIP disable thermal and enable cores before governor settings - # STOPSHIP governor settings - # STOPSHIP start power_sh + # bring back all cores + write /sys/devices/system/cpu/cpu0/online 1 + write /sys/devices/system/cpu/cpu1/online 1 + write /sys/devices/system/cpu/cpu2/online 1 + write /sys/devices/system/cpu/cpu3/online 1 + write /sys/devices/system/cpu/cpu4/online 1 + write /sys/devices/system/cpu/cpu5/online 1 + write /sys/devices/system/cpu/cpu6/online 1 + write /sys/devices/system/cpu/cpu7/online 1 + + # configure governor settings for little cluster + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil + write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us 0 + write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq 1209600 + + # configure governor settings for big cluster + write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor schedutil + write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us 0 + write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq 1574400 + write /sys/module/cpu_boost/parameters/input_boost_freq "0:1324800" + write /sys/module/cpu_boost/parameters/input_boost_ms 120 + # Limit the min frequency to 825MHz + write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 825000 # set default schedTune value for foreground/top-app write /dev/stune/foreground/schedtune.prefer_idle 1 @@ -110,8 +135,6 @@ on init mkdir /dev/socket/pdx/system/vr/pose 0775 system system mkdir /dev/socket/pdx/system/vr/sensors 0775 system system - # STOPSHIP enable low power modes - # b/37682684 Enable suspend clock reporting write /sys/kernel/debug/clk/debug_suspend 1 @@ -413,7 +436,7 @@ service folio_daemon /system/bin/folio_daemon user system group system -service perfd /vendor/bin/perfd +service vendor.perfd /vendor/bin/perfd class main user root group root readproc system @@ -452,6 +475,9 @@ service per_proxy /vendor/bin/pm-proxy group system disabled +on property:sys.post_boot.parsed=1 + start vendor.perfd + on property:sys.boot_completed=1 # Enable ZRAM on boot_complete swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform} @@ -650,13 +676,6 @@ service vendor.chre /vendor/bin/chre socket chre seqpacket 0660 root system shutdown critical -service power_sh /vendor/bin/init.power.sh - class main - user root - group root system - disabled - oneshot - service devstart_sh /vendor/bin/init.qcom.devstart.sh class main user root diff --git a/init.power.rc b/init.power.rc new file mode 100644 index 00000000..c20b3890 --- /dev/null +++ b/init.power.rc @@ -0,0 +1,68 @@ +# +# Copyright (C) 2017 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +on property:sys.boot_completed=1 + # Enable bus-dcvs + write /sys/class/devfreq/soc:qcom,cpubw/governor "bw_hwmon" + write /sys/class/devfreq/soc:qcom,cpubw/polling_interval 50 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones "2288 4577 6500 8132 9155 10681" + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 40 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory 20 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length 10 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_ceil_mbps 0 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent 40 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay 20 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 0 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale 250 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps 1600 + + write /sys/class/devfreq/soc:qcom,llccbw/governor "bw_hwmon" + write /sys/class/devfreq/soc:qcom,llccbw/polling_interval 50 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/mbps_zones "1720 2929 4943 5931 6881" + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/sample_ms 4 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/io_percent 80 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/hist_memory 20 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/hyst_length 10 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_ceil_mbps 0 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_io_percent 80 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/low_power_delay 20 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/guard_band_mbps 0 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/up_scale 250 + write /sys/class/devfreq/soc:qcom,llccbw/bw_hwmon/idle_mbps 1600 + + write /sys/class/devfreq/soc:qcom,mincpubw/governor "cpufreq" + + # Enable memlat governor + write /sys/class/devfreq/soc:qcom,memlat-cpu0/governor "mem_latency" + write /sys/class/devfreq/soc:qcom,memlat-cpu0/polling_interval 10 + write /sys/class/devfreq/soc:qcom,memlat-cpu0/mem_latency/ratio_ceil 400 + write /sys/class/devfreq/soc:qcom,memlat-cpu4/governor "mem_latency" + write /sys/class/devfreq/soc:qcom,memlat-cpu4/polling_interval 10 + write /sys/class/devfreq/soc:qcom,memlat-cpu4/mem_latency/ratio_ceil 400 + + write /sys/class/devfreq/soc:qcom,l3-cpu0/governor "mem_latency" + write /sys/class/devfreq/soc:qcom,l3-cpu0/polling_interval 10 + write /sys/class/devfreq/soc:qcom,l3-cpu0/mem_latency/ratio_ceil 400 + write /sys/class/devfreq/soc:qcom,l3-cpu4/governor "mem_latency" + write /sys/class/devfreq/soc:qcom,l3-cpu4/polling_interval 10 + write /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil 400 + + # Turn on sleep modes. + write /sys/module/lpm_levels/parameters/sleep_disabled 0 + + # Signal perfd that boot has completed + setprop sys.post_boot.parsed 1
\ No newline at end of file diff --git a/init.power.sh b/init.power.sh deleted file mode 100644 index 2b66c67f..00000000 --- a/init.power.sh +++ /dev/null @@ -1,47 +0,0 @@ -#! /vendor/bin/sh - -################################################################################ -# helper functions to allow Android init like script - -function write() { - echo -n $2 > $1 -} - -function copy() { - cat $1 > $2 -} - -################################################################################ - -# 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" - -# Enable memlat governor -for memlat in /sys/class/devfreq/*qcom,memlat-cpu* -do - write $memlat/governor "mem_latency" - write $memlat/polling_interval 10 - write $memlat/mem_latency/ratio_ceil 400 -done - -# Signal perfd that boot has completed -setprop sys.post_boot.parsed 1 - |