| # |
| # 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 "1144 1720 2086 2929 3879 5931 6881" |
| write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4 |
| write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 68 |
| 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/down_thres 80 |
| 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,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-cpu6/governor "mem_latency" |
| write /sys/class/devfreq/soc:qcom,memlat-cpu6/polling_interval 10 |
| write /sys/class/devfreq/soc:qcom,memlat-cpu6/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-cpu6/governor "mem_latency" |
| write /sys/class/devfreq/soc:qcom,l3-cpu6/polling_interval 10 |
| write /sys/class/devfreq/soc:qcom,l3-cpu6/mem_latency/ratio_ceil 400 |
| |
| # Limit the min frequency of LC to 576MHz |
| write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 576000 |
| |
| # Limit the min frequency of BC to 825MHz |
| write /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq 825600 |
| |
| # Turn on sleep modes. |
| write /sys/module/lpm_levels/parameters/sleep_disabled 0 |
| |
| # Enable idle state listener |
| write /sys/class/drm/card0/device/idle_encoder_mask 1 |
| write /sys/class/drm/card0/device/idle_timeout_ms 100 |
| |
| # Change l3-cdsp to userspace governor |
| write /sys/class/devfreq/soc:qcom,l3-cdsp/governor userspace |
| chown system system /sys/class/devfreq/soc:qcom,l3-cdsp/userspace/set_freq |
| |
| # Disable CPU Retention |
| write /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled N |
| write /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled N |
| |
| # Disable console_suspend to get better logging for kernel crashes |
| on boot |
| write /sys/module/printk/parameters/console_suspend N |
| |
| #Enable suspend to idle mode to reduce latency during suspend/resume |
| write /sys/power/mem_sleep "s2idle" |
| |
| # If UART is on, enable console_suspend on boot_complete to save power |
| on property:sys.boot_completed=1 && property:init.svc.console=running |
| write /sys/module/printk/parameters/console_suspend Y |