| #! /vendor/bin/sh |
| |
| # Copyright (c) 2012-2013, 2016-2020, The Linux Foundation. All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are met: |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above copyright |
| # notice, this list of conditions and the following disclaimer in the |
| # documentation and/or other materials provided with the distribution. |
| # * Neither the name of The Linux Foundation nor |
| # the names of its contributors may be used to endorse or promote |
| # products derived from this software without specific prior written |
| # permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
| # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
| # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| # |
| # Changes from Qualcomm Innovation Center are provided under the following license: |
| # Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. |
| # SPDX-License-Identifier: BSD-3-Clause-Clear |
| # |
| |
| function 8953_sched_dcvs_eas() |
| { |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| #governor settings |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 1401600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| |
| echo 652800 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| |
| #input boost params |
| echo 1401600 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 20 > $cpubw/bw_hwmon/low_power_delay |
| echo 34 > $cpubw/bw_hwmon/low_power_io_percent |
| echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1611 > $cpubw/min_freq |
| done |
| done |
| else |
| #governor settings |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 1401600 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load |
| |
| echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| fi |
| } |
| |
| function 8917_sched_dcvs_eas() |
| { |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| #governor settings |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 1094400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8917 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| |
| echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| |
| #input boost params |
| echo 1094400 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 20 > $cpubw/bw_hwmon/io_percent |
| echo 30 > $cpubw/bw_hwmon/guard_band_mbps |
| done |
| done |
| else |
| #governor settings |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 1094400 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8917 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load |
| |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| fi |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| fi |
| } |
| |
| function 8937_sched_dcvs_eas() |
| { |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 1094400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8937 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| |
| echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| |
| ## enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor |
| #set the hispeed_freq |
| echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8937 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq |
| |
| echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq |
| |
| #input boost params |
| echo 109440 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 20 > $cpubw/bw_hwmon/io_percent |
| echo 30 > $cpubw/bw_hwmon/guard_band_mbps |
| done |
| done |
| else |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8937 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| ## enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us |
| #set the hispeed_freq |
| echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for 8937 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| fi |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| fi |
| } |
| |
| function configure_automotive_sku_parameters() { |
| |
| echo 1036800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 1171200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq |
| echo 1785600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| echo 902400000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq |
| echo 902400000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/min_freq |
| echo 902400000 > /sys/class/devfreq/18321110.qcom,cpu7-cpu-l3-lat/min_freq |
| echo 1612800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq |
| echo 1612800000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/max_freq |
| echo 1612800000 > /sys/class/devfreq/18321110.qcom,cpu7-cpu-l3-lat/max_freq |
| echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq |
| echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/min_freq |
| echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq |
| echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/max_freq |
| |
| #read feature id from nvram |
| reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` |
| feature_id=$(((reg_val >> 20) & 0xFF)) |
| log -t BOOT -p i "feature id '$feature_id'" |
| if [ $feature_id == 0 ]; then |
| echo " SKU Configured : SA8155P" |
| echo 2131200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| echo 2419200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq |
| echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| elif [ $feature_id == 1 ]; then |
| echo "SKU Configured : SA8150P" |
| echo 1920000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| echo 2227200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq |
| echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| else |
| echo "unknown feature_id value" $feature_id |
| fi |
| } |
| |
| function configure_automotive_sku_parameters_sa8195() { |
| |
| #Setting the min supported frequencies |
| echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/min_freq |
| echo 1651200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq |
| echo 1651200000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq |
| echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq |
| |
| #read feature id |
| reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` |
| feature_id=$(((reg_val >> 20) & 0xFF)) |
| |
| #setting min gpu freq to 392 MHz |
| echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel |
| if [ $feature_id == 0 ]; then |
| echo "feature_id is 0 for SA8195AA" |
| |
| #setting max cpu freq to 2.496GHz |
| echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| #setting max gpu freq to 530 MHz |
| echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 1804 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then |
| echo "feature_id is 1 for external SA8195AB" |
| echo "feature_id is 2 for internal SA8195AB" |
| |
| #setting max cpu freq to 2.496GHz |
| echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| #setting max gpu freq to 670 MHz |
| echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 2092 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| elif [ $feature_id == 3 ]; then |
| echo "feature_id is 3 for external SA8195AC" |
| else |
| echo "unknown feature_id value" $feature_id |
| fi |
| } |
| |
| function configure_sku_parameters() { |
| |
| #read feature id from nvram |
| reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` |
| feature_id=$(((reg_val >> 20) & 0xFF)) |
| log -t BOOT -p i "feature id '$feature_id'" |
| if [ $feature_id == 6 ]; then |
| echo " SKU Configured : SA6145" |
| echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq |
| echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq |
| echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq |
| echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1017600000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1017600000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq |
| echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 1016 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| setprop vendor.sku_identified 1 |
| setprop vendor.sku_name "SA6145" |
| elif [ $feature_id == 5 ]; then |
| echo "SKU Configured : SA6150" |
| echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq |
| echo 998400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| echo 998400 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq |
| echo 998400 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq |
| echo 998400 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq |
| echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| echo 998400 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq |
| echo 1708800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq |
| echo 1708800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq |
| echo 2 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 1333 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| setprop vendor.sku_identified 1 |
| setprop vendor.sku_name "SA6150" |
| elif [ $feature_id == 4 ] || [ $feature_id == 3 ]; then |
| echo "SKU Configured : SA6155" |
| echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq |
| echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq |
| echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq |
| echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 1555 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| setprop vendor.sku_identified 1 |
| setprop vendor.sku_name "SA6155" |
| else |
| echo "SKU Configured : SA6155" |
| echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq |
| echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq |
| echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/18321110.qcom,cpu6-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq |
| echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq |
| echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 1555 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| setprop vendor.sku_identified 1 |
| setprop vendor.sku_name "SA6155" |
| fi |
| } |
| |
| function 8953_sched_dcvs_hmp() |
| { |
| #scheduler settings |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| #task packing settings |
| echo 0 > /sys/devices/system/cpu/cpu0/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu1/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu2/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu3/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu4/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu5/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu6/sched_static_cpu_pwr_cost |
| echo 0 > /sys/devices/system/cpu/cpu7/sched_static_cpu_pwr_cost |
| # spill load is set to 100% by default in the kernel |
| echo 3 > /proc/sys/kernel/sched_spill_nr_run |
| # Apply inter-cluster load balancer restrictions |
| echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill |
| # set sync wakee policy tunable |
| echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker |
| |
| #governor settings |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "19000 1401600:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate |
| echo 1401600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy |
| echo "85 1401600:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 39000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| echo 19 > /proc/sys/kernel/sched_upmigrate_min_nice |
| # Enable sched guided freq control |
| echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif |
| echo 200000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 200000 > /proc/sys/kernel/sched_freq_dec_notify |
| |
| } |
| |
| function 8917_sched_dcvs_hmp() |
| { |
| # HMP scheduler settings |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread |
| # HMP Task packing settings |
| echo 20 > /proc/sys/kernel/sched_small_task |
| echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load |
| |
| echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run |
| |
| echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle |
| |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "19000 1094400:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate |
| echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy |
| echo "1 960000:85 1094400:90" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| |
| # Enable sched guided freq control |
| echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif |
| echo 50000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 50000 > /proc/sys/kernel/sched_freq_dec_notify |
| } |
| |
| function 8937_sched_dcvs_hmp() |
| { |
| # HMP scheduler settings |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| # HMP Task packing settings |
| echo 20 > /proc/sys/kernel/sched_small_task |
| echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load |
| |
| echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run |
| |
| echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "1 960000:85 1094400:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor |
| |
| # enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "1 768000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor |
| |
| # Enable sched guided freq control |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo 50000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 50000 > /proc/sys/kernel/sched_freq_dec_notify |
| |
| } |
| |
| function sdm660_sched_interactive_dcvs() { |
| |
| echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us |
| echo 400000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 400000 > /proc/sys/kernel/sched_freq_dec_notify |
| echo 5 > /proc/sys/kernel/sched_spill_nr_run |
| echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill |
| echo 100000 > /proc/sys/kernel/sched_short_burst_ns |
| echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker |
| echo 20 > /proc/sys/kernel/sched_small_wakee_task_load |
| |
| # disable thermal bcl hotplug to switch governor |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| |
| # online CPU0 |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| # configure governor settings for little cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "85 1747200:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis |
| echo 633600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/fast_ramp_down |
| # online CPU4 |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| # configure governor settings for big cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "85 1401600:90 2150400:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 59000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis |
| echo 1113600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/fast_ramp_down |
| |
| # bring all cores online |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # configure LPM |
| echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled |
| |
| # re-enable thermal and BCL hotplug |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 762 > $cpubw/min_freq |
| echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| echo 100 > $cpubw/bw_hwmon/decay_rate |
| echo 50 > $cpubw/bw_hwmon/bw_step |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps |
| echo 34 > $cpubw/bw_hwmon/low_power_io_percent |
| echo 20 > $cpubw/bw_hwmon/low_power_delay |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| } |
| |
| function sdm660_sched_schedutil_dcvs() { |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 633600 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| echo 902400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl |
| echo 1113600 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq |
| else |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| fi |
| |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| #if the kernel version >=4.19,set input_boost_freq accordingly |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| echo "0:1401600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 40 > /sys/devices/system/cpu/cpu_boost/input_boost_ms |
| else |
| echo "0:1401600" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| fi |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 762 > $cpubw/min_freq |
| echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| echo 100 > $cpubw/bw_hwmon/decay_rate |
| echo 50 > $cpubw/bw_hwmon/bw_step |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then |
| for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* |
| do |
| echo "compute" > $latfloor/governor |
| echo 10 > $latfloor/polling_interval |
| done |
| fi |
| done |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| fi |
| |
| } |
| |
| target=`getprop ro.board.platform` |
| |
| KernelVersionStr=`cat /proc/sys/kernel/osrelease` |
| KernelVersionS=${KernelVersionStr:2:2} |
| KernelVersionA=${KernelVersionStr:0:1} |
| KernelVersionB=${KernelVersionS%.*} |
| |
| function configure_zram_parameters() { |
| MemTotalStr=`cat /proc/meminfo | grep MemTotal` |
| MemTotal=${MemTotalStr:16:8} |
| |
| low_ram=`getprop ro.config.low_ram` |
| |
| # Zram disk - 75% for Go devices. |
| # For 512MB Go device, size = 384MB, set same for Non-Go. |
| # For 1GB Go device, size = 768MB, set same for Non-Go. |
| # For 2GB Go device, size = 1536MB, set same for Non-Go. |
| # For >2GB Non-Go devices, size = 50% of RAM size. Limit the size to 4GB. |
| # And enable lz4 zram compression for Go targets. |
| |
| let RamSizeGB="( $MemTotal / 1048576 ) + 1" |
| diskSizeUnit=M |
| if [ $RamSizeGB -le 2 ]; then |
| let zRamSizeMB="( $RamSizeGB * 1024 ) * 3 / 4" |
| else |
| let zRamSizeMB="( $RamSizeGB * 1024 ) / 2" |
| fi |
| |
| # use MB avoid 32 bit overflow |
| if [ $zRamSizeMB -gt 4096 ]; then |
| let zRamSizeMB=4096 |
| fi |
| |
| if [ "$low_ram" == "true" ]; then |
| echo lz4 > /sys/block/zram0/comp_algorithm |
| fi |
| |
| if [ -f /sys/block/zram0/disksize ]; then |
| if [ -f /sys/block/zram0/use_dedup ]; then |
| echo 1 > /sys/block/zram0/use_dedup |
| fi |
| echo "$zRamSizeMB""$diskSizeUnit" > /sys/block/zram0/disksize |
| |
| # ZRAM may use more memory than it saves if SLAB_STORE_USER |
| # debug option is enabled. |
| if [ -e /sys/kernel/slab/zs_handle ]; then |
| echo 0 > /sys/kernel/slab/zs_handle/store_user |
| fi |
| if [ -e /sys/kernel/slab/zspage ]; then |
| echo 0 > /sys/kernel/slab/zspage/store_user |
| fi |
| |
| mkswap /dev/block/zram0 |
| swapon /dev/block/zram0 -p 32758 |
| fi |
| } |
| |
| function configure_read_ahead_kb_values() { |
| MemTotalStr=`cat /proc/meminfo | grep MemTotal` |
| MemTotal=${MemTotalStr:16:8} |
| |
| dmpts=$(ls /sys/block/*/queue/read_ahead_kb | grep -e dm -e mmc) |
| |
| # Set 128 for <= 3GB & |
| # set 512 for >= 4GB targets. |
| if [ $MemTotal -le 3145728 ]; then |
| echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb |
| echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb |
| for dm in $dmpts; do |
| echo 128 > $dm |
| done |
| else |
| echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb |
| echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb |
| for dm in $dmpts; do |
| echo 512 > $dm |
| done |
| fi |
| } |
| |
| function disable_core_ctl() { |
| if [ -f /sys/devices/system/cpu/cpu0/core_ctl/enable ]; then |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| else |
| echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/disable |
| fi |
| } |
| |
| function enable_swap() { |
| MemTotalStr=`cat /proc/meminfo | grep MemTotal` |
| MemTotal=${MemTotalStr:16:8} |
| |
| SWAP_ENABLE_THRESHOLD=1048576 |
| swap_enable=`getprop ro.vendor.qti.config.swap` |
| |
| # Enable swap initially only for 1 GB targets |
| if [ "$MemTotal" -le "$SWAP_ENABLE_THRESHOLD" ] && [ "$swap_enable" == "true" ]; then |
| # Static swiftness |
| echo 1 > /proc/sys/vm/swap_ratio_enable |
| echo 70 > /proc/sys/vm/swap_ratio |
| |
| # Swap disk - 200MB size |
| if [ ! -f /data/vendor/swap/swapfile ]; then |
| dd if=/dev/zero of=/data/vendor/swap/swapfile bs=1m count=200 |
| fi |
| mkswap /data/vendor/swap/swapfile |
| swapon /data/vendor/swap/swapfile -p 32758 |
| fi |
| } |
| |
| function disable_ppr() |
| { |
| if [ -f /sys/module/process_reclaim/parameters/enable_process_reclaim ]; then |
| echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim |
| fi |
| } |
| |
| function configure_memory_parameters() { |
| # Set Memory parameters. |
| # |
| # Set per_process_reclaim tuning parameters |
| # All targets will use vmpressure range 50-70, |
| # All targets will use 512 pages swap size. |
| # |
| # Set Low memory killer minfree parameters |
| # 32 bit Non-Go, all memory configurations will use 15K series |
| # 32 bit Go, all memory configurations will use uLMK + Memcg |
| # 64 bit will use Google default LMK series. |
| # |
| # Set ALMK parameters (usually above the highest minfree values) |
| # vmpressure_file_min threshold is always set slightly higher |
| # than LMK minfree's last bin value for all targets. It is calculated as |
| # vmpressure_file_min = (last bin - second last bin ) + last bin |
| # |
| # Set allocstall_threshold to 0 for all targets. |
| # |
| |
| ProductName=`getprop ro.product.name` |
| low_ram=`getprop ro.config.low_ram` |
| |
| if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] || [ "$ProductName" == "sdmshrike_au" ]; then |
| # Enable ZRAM |
| configure_zram_parameters |
| configure_read_ahead_kb_values |
| echo 0 > /proc/sys/vm/page-cluster |
| echo 100 > /proc/sys/vm/swappiness |
| else |
| arch_type=`uname -m` |
| |
| # Set parameters for 32-bit Go targets. |
| if [ "$low_ram" == "true" ]; then |
| # Disable KLMK, ALMK, PPR & Core Control for Go devices |
| echo 0 > /sys/module/lowmemorykiller/parameters/enable_lmk |
| echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk |
| echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim |
| disable_core_ctl |
| # Enable oom_reaper for Go devices |
| if [ -f /proc/sys/vm/reap_mem_on_sigkill ]; then |
| echo 1 > /proc/sys/vm/reap_mem_on_sigkill |
| fi |
| else |
| |
| # Read adj series and set adj threshold for PPR and ALMK. |
| # This is required since adj values change from framework to framework. |
| adj_series=`cat /sys/module/lowmemorykiller/parameters/adj` |
| adj_1="${adj_series#*,}" |
| set_almk_ppr_adj="${adj_1%%,*}" |
| |
| # PPR and ALMK should not act on HOME adj and below. |
| # Normalized ADJ for HOME is 6. Hence multiply by 6 |
| # ADJ score represented as INT in LMK params, actual score can be in decimal |
| # Hence add 6 considering a worst case of 0.9 conversion to INT (0.9*6). |
| # For uLMK + Memcg, this will be set as 6 since adj is zero. |
| set_almk_ppr_adj=$(((set_almk_ppr_adj * 6) + 6)) |
| echo $set_almk_ppr_adj > /sys/module/lowmemorykiller/parameters/adj_max_shift |
| |
| # Calculate vmpressure_file_min as below & set for 64 bit: |
| # vmpressure_file_min = last_lmk_bin + (last_lmk_bin - last_but_one_lmk_bin) |
| if [ "$arch_type" == "aarch64" ]; then |
| minfree_series=`cat /sys/module/lowmemorykiller/parameters/minfree` |
| minfree_1="${minfree_series#*,}" ; rem_minfree_1="${minfree_1%%,*}" |
| minfree_2="${minfree_1#*,}" ; rem_minfree_2="${minfree_2%%,*}" |
| minfree_3="${minfree_2#*,}" ; rem_minfree_3="${minfree_3%%,*}" |
| minfree_4="${minfree_3#*,}" ; rem_minfree_4="${minfree_4%%,*}" |
| minfree_5="${minfree_4#*,}" |
| |
| vmpres_file_min=$((minfree_5 + (minfree_5 - rem_minfree_4))) |
| echo $vmpres_file_min > /sys/module/lowmemorykiller/parameters/vmpressure_file_min |
| else |
| # Set LMK series, vmpressure_file_min for 32 bit non-go targets. |
| # Disable Core Control, enable KLMK for non-go 8909. |
| if [ "$ProductName" == "msm8909" ]; then |
| disable_core_ctl |
| echo 1 > /sys/module/lowmemorykiller/parameters/enable_lmk |
| fi |
| echo "15360,19200,23040,26880,34415,43737" > /sys/module/lowmemorykiller/parameters/minfree |
| echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min |
| fi |
| |
| # Enable adaptive LMK for all targets & |
| # use Google default LMK series for all 64-bit targets >=2GB. |
| echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk |
| |
| # Enable oom_reaper |
| if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then |
| echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper |
| fi |
| |
| if [[ "$ProductName" != "bengal"* ]]; then |
| #bengal has appcompaction enabled. So not needed |
| # Set PPR parameters for other targets |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| case "$soc_id" in |
| # Do not set PPR parameters for premium targets |
| # sdm845 - 321, 341 |
| # msm8998 - 292, 319 |
| # msm8996 - 246, 291, 305, 312 |
| "321" | "341" | "292" | "319" | "246" | "291" | "305" | "312") |
| ;; |
| *) |
| #Set PPR parameters for all other targets. |
| echo $set_almk_ppr_adj > /sys/module/process_reclaim/parameters/min_score_adj |
| echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim |
| echo 50 > /sys/module/process_reclaim/parameters/pressure_min |
| echo 70 > /sys/module/process_reclaim/parameters/pressure_max |
| echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff |
| echo 512 > /sys/module/process_reclaim/parameters/per_swap_size |
| ;; |
| esac |
| fi |
| fi |
| |
| if [[ "$ProductName" == "bengal"* ]]; then |
| #Set PPR nomap parameters for bengal targets |
| echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim |
| echo 50 > /sys/module/process_reclaim/parameters/pressure_min |
| echo 70 > /sys/module/process_reclaim/parameters/pressure_max |
| echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff |
| echo 0 > /sys/module/process_reclaim/parameters/per_swap_size |
| echo 7680 > /sys/module/process_reclaim/parameters/tsk_nomap_swap_sz |
| fi |
| |
| # Set allocstall_threshold to 0 for all targets. |
| # Set swappiness to 100 for all targets |
| echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold |
| echo 100 > /proc/sys/vm/swappiness |
| |
| # Disable wsf for all targets beacause we are using efk. |
| # wsf Range : 1..1000 So set to bare minimum value 1. |
| echo 1 > /proc/sys/vm/watermark_scale_factor |
| |
| configure_zram_parameters |
| |
| configure_read_ahead_kb_values |
| |
| enable_swap |
| fi |
| } |
| |
| function enable_memory_features() |
| { |
| MemTotalStr=`cat /proc/meminfo | grep MemTotal` |
| MemTotal=${MemTotalStr:16:8} |
| |
| if [ $MemTotal -le 2097152 ]; then |
| #Enable B service adj transition for 2GB or less memory |
| setprop ro.vendor.qti.sys.fw.bservice_enable true |
| setprop ro.vendor.qti.sys.fw.bservice_limit 5 |
| setprop ro.vendor.qti.sys.fw.bservice_age 5000 |
| |
| #Enable Delay Service Restart |
| setprop ro.vendor.qti.am.reschedule_service true |
| fi |
| } |
| |
| function start_hbtp() |
| { |
| # Start the Host based Touch processing but not in the power off mode. |
| bootmode=`getprop ro.bootmode` |
| if [ "charger" != $bootmode ]; then |
| start vendor.hbtp |
| fi |
| } |
| |
| case "$target" in |
| "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627a" | "msm7627_surf" | \ |
| "qsd8250_surf" | "qsd8250_ffa" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "qsd8650a_st1x") |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| ;; |
| esac |
| |
| # For Kodiak target for which cdsp is defective, we read remote cdsp status from fastrpc node |
| # and if its value is false we disable cdsp daemon by setting the cdsp disable propety to true |
| case "$target" in |
| "lahaina") |
| if [ -f /sys/devices/soc0/chip_family ]; then |
| chip_family_id=`cat /sys/devices/soc0/chip_family` |
| else |
| chip_family_id=-1 |
| fi |
| |
| case "$chip_family_id" in |
| "0x76") |
| if [ -f /sys/devices/platform/soc/soc:qcom,msm_fastrpc/remote_cdsp_status ]; then |
| remote_cdsp_status=`cat /sys/devices/platform/soc/soc:qcom,msm_fastrpc/remote_cdsp_status` |
| else |
| remote_cdsp_status=-1 |
| fi |
| |
| if [ $remote_cdsp_status -eq 0 ]; then |
| setprop vendor.fastrpc.disable.cdsprpcd.daemon 1 |
| fi |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "msm7201a_ffa" | "msm7201a_surf") |
| echo 500000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| ;; |
| esac |
| |
| case "$target" in |
| "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") |
| echo 75000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 1 > /sys/module/pm2/parameters/idle_sleep_mode |
| ;; |
| esac |
| |
| case "$target" in |
| "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627_surf" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm7627a" ) |
| echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8660") |
| echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache |
| echo 1 > /sys/module/rpm_resources/enable_low_power/pxo |
| echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_dig |
| echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_mem |
| echo 1 > /sys/module/rpm_resources/enable_low_power/rpm_cpu |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| chown -h root.system /sys/devices/system/cpu/mfreq |
| chmod -h 220 /sys/devices/system/cpu/mfreq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8960") |
| echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache |
| echo 1 > /sys/module/rpm_resources/enable_low_power/pxo |
| echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_dig |
| echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_mem |
| echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential |
| echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core |
| echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core |
| echo 918000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq |
| echo 1026000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq |
| echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load |
| chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| chown -h root.system /sys/devices/system/cpu/mfreq |
| chmod -h 220 /sys/devices/system/cpu/mfreq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chown -h root.system /sys/devices/system/cpu/cpu2/online |
| chown -h root.system /sys/devices/system/cpu/cpu3/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu2/online |
| chmod -h 664 /sys/devices/system/cpu/cpu3/online |
| # set DCVS parameters for CPU |
| echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us |
| echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us |
| echo 100000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_min_us |
| echo 500000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_max_us |
| echo 0 > /sys/module/msm_dcvs/cores/cpu0/slack_mode_dynamic |
| echo 1000000 > /sys/module/msm_dcvs/cores/cpu0/disable_pc_threshold |
| echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_max_us |
| echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_min_us |
| echo 100000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_min_us |
| echo 500000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_max_us |
| echo 0 > /sys/module/msm_dcvs/cores/cpu1/slack_mode_dynamic |
| echo 1000000 > /sys/module/msm_dcvs/cores/cpu1/disable_pc_threshold |
| echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_max_us |
| echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_min_us |
| echo 100000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_min_us |
| echo 500000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_max_us |
| echo 0 > /sys/module/msm_dcvs/cores/cpu2/slack_mode_dynamic |
| echo 1000000 > /sys/module/msm_dcvs/cores/cpu2/disable_pc_threshold |
| echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_max_us |
| echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_min_us |
| echo 100000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_min_us |
| echo 500000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_max_us |
| echo 0 > /sys/module/msm_dcvs/cores/cpu3/slack_mode_dynamic |
| echo 1000000 > /sys/module/msm_dcvs/cores/cpu3/disable_pc_threshold |
| # set DCVS parameters for GPU |
| echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_max_us |
| echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_min_us |
| echo 0 > /sys/module/msm_dcvs/cores/gpu0/slack_mode_dynamic |
| # set msm_mpdecision parameters |
| echo 45000 > /sys/module/msm_mpdecision/slack_time_max_us |
| echo 15000 > /sys/module/msm_mpdecision/slack_time_min_us |
| echo 100000 > /sys/module/msm_mpdecision/em_win_size_min_us |
| echo 1000000 > /sys/module/msm_mpdecision/em_win_size_max_us |
| echo 3 > /sys/module/msm_mpdecision/online_util_pct_min |
| echo 25 > /sys/module/msm_mpdecision/online_util_pct_max |
| echo 97 > /sys/module/msm_mpdecision/em_max_util_pct |
| echo 2 > /sys/module/msm_mpdecision/rq_avg_poll_ms |
| echo 10 > /sys/module/msm_mpdecision/mp_em_rounding_point_min |
| echo 85 > /sys/module/msm_mpdecision/mp_em_rounding_point_max |
| echo 50 > /sys/module/msm_mpdecision/iowait_threshold_pct |
| #set permissions for the nodes needed by display on/off hook |
| chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us |
| chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us |
| chown -h system /sys/module/msm_mpdecision/slack_time_max_us |
| chown -h system /sys/module/msm_mpdecision/slack_time_min_us |
| chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us |
| chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us |
| chmod -h 664 /sys/module/msm_mpdecision/slack_time_max_us |
| chmod -h 664 /sys/module/msm_mpdecision/slack_time_min_us |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| case "$soc_id" in |
| "130") |
| echo 230 > /sys/class/gpio/export |
| echo 228 > /sys/class/gpio/export |
| echo 229 > /sys/class/gpio/export |
| echo "in" > /sys/class/gpio/gpio230/direction |
| echo "rising" > /sys/class/gpio/gpio230/edge |
| echo "in" > /sys/class/gpio/gpio228/direction |
| echo "rising" > /sys/class/gpio/gpio228/edge |
| echo "in" > /sys/class/gpio/gpio229/direction |
| echo "rising" > /sys/class/gpio/gpio229/edge |
| echo 253 > /sys/class/gpio/export |
| echo 254 > /sys/class/gpio/export |
| echo 257 > /sys/class/gpio/export |
| echo 258 > /sys/class/gpio/export |
| echo 259 > /sys/class/gpio/export |
| echo "out" > /sys/class/gpio/gpio253/direction |
| echo "out" > /sys/class/gpio/gpio254/direction |
| echo "out" > /sys/class/gpio/gpio257/direction |
| echo "out" > /sys/class/gpio/gpio258/direction |
| echo "out" > /sys/class/gpio/gpio259/direction |
| chown -h media /sys/class/gpio/gpio253/value |
| chown -h media /sys/class/gpio/gpio254/value |
| chown -h media /sys/class/gpio/gpio257/value |
| chown -h media /sys/class/gpio/gpio258/value |
| chown -h media /sys/class/gpio/gpio259/value |
| chown -h media /sys/class/gpio/gpio253/direction |
| chown -h media /sys/class/gpio/gpio254/direction |
| chown -h media /sys/class/gpio/gpio257/direction |
| chown -h media /sys/class/gpio/gpio258/direction |
| chown -h media /sys/class/gpio/gpio259/direction |
| echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_dig |
| echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_mem |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8974") |
| echo 4 > /sys/module/lpm_levels/enable_low_power/l2 |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| case "$soc_id" in |
| "208" | "211" | "214" | "217" | "209" | "212" | "215" | "218" | "194" | "210" | "213" | "216") |
| for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor |
| do |
| echo "cpubw_hwmon" > $devfreq_gov |
| done |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
| echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
| echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor |
| echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 1190400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy |
| echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 20 > /sys/module/cpu_boost/parameters/boost_ms |
| echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold |
| echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| ;; |
| *) |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential |
| echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core |
| echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core |
| echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq |
| echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq |
| echo 1190400 > /sys/devices/system/cpu/cpufreq/ondemand/input_boost |
| echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load |
| ;; |
| esac |
| echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| chown -h root.system /sys/devices/system/cpu/mfreq |
| chmod -h 220 /sys/devices/system/cpu/mfreq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chown -h root.system /sys/devices/system/cpu/cpu2/online |
| chown -h root.system /sys/devices/system/cpu/cpu3/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu2/online |
| chmod -h 664 /sys/devices/system/cpu/cpu3/online |
| echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8916") |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| case "$soc_id" in |
| "206") |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus |
| ;; |
| "247" | "248" | "249" | "250") |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| ;; |
| "239" | "241" | "263") |
| if [ -f /sys/devices/soc0/revision ]; then |
| revision=`cat /sys/devices/soc0/revision` |
| else |
| revision=`cat /sys/devices/system/soc/soc0/revision` |
| fi |
| echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| fi |
| case "$soc_id" in |
| "239") |
| case "$hw_platform" in |
| "Surf") |
| case "$platform_subtype_id" in |
| "1" | "2") |
| start_hbtp |
| ;; |
| esac |
| ;; |
| "MTP") |
| case "$platform_subtype_id" in |
| "3") |
| start_hbtp |
| ;; |
| esac |
| ;; |
| esac |
| ;; |
| esac |
| ;; |
| "268" | "269" | "270" | "271") |
| echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus |
| ;; |
| "233" | "240" | "242") |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8226") |
| echo 4 > /sys/module/lpm_levels/enable_low_power/l2 |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential |
| echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core |
| echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core |
| echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq |
| echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq |
| echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load |
| echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chown -h root.system /sys/devices/system/cpu/cpu2/online |
| chown -h root.system /sys/devices/system/cpu/cpu3/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu2/online |
| chmod -h 664 /sys/devices/system/cpu/cpu3/online |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8610") |
| echo 4 > /sys/module/lpm_levels/enable_low_power/l2 |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential |
| echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core |
| echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core |
| echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq |
| echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq |
| echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load |
| echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| setprop ro.qualcomm.perf.min_freq 7 |
| echo 1 > /sys/kernel/mm/ksm/deferred_timer |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chown -h root.system /sys/devices/system/cpu/cpu2/online |
| chown -h root.system /sys/devices/system/cpu/cpu3/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu2/online |
| chmod -h 664 /sys/devices/system/cpu/cpu3/online |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8916") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| # HMP scheduler settings for 8916, 8936, 8939, 8929 |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| |
| # Apply governor settings for 8916 |
| case "$soc_id" in |
| "206" | "247" | "248" | "249" | "250") |
| |
| # HMP scheduler load tracking settings |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| |
| # HMP Task packing settings for 8916 |
| echo 20 > /proc/sys/kernel/sched_small_task |
| echo 30 > /proc/sys/kernel/sched_mostly_idle_load |
| echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run |
| |
| # disable thermal core_control to update scaling_min_freq |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| # enable thermal core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| echo "25000 1094400:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate |
| echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy |
| echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| ;; |
| esac |
| |
| # Apply governor settings for 8936 |
| case "$soc_id" in |
| "233" | "240" | "242") |
| |
| # HMP scheduler load tracking settings |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| |
| # HMP Task packing settings for 8936 |
| echo 50 > /proc/sys/kernel/sched_small_task |
| echo 50 > /proc/sys/kernel/sched_mostly_idle_load |
| echo 10 > /proc/sys/kernel/sched_mostly_idle_nr_run |
| |
| # disable thermal core_control to update scaling_min_freq, interactive gov |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| # enable thermal core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| echo "25000 1113600:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate |
| echo 960000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy |
| echo "1 800000:85 1113600:90 1267200:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| ;; |
| esac |
| |
| # Apply governor settings for 8939 |
| case "$soc_id" in |
| "239" | "241" | "263" | "268" | "269" | "270" | "271") |
| |
| if [ `cat /sys/devices/soc0/revision` != "3.0" ]; then |
| # Apply 1.0 and 2.0 specific Sched & Governor settings |
| |
| # HMP scheduler load tracking settings |
| echo 5 > /proc/sys/kernel/sched_ravg_hist_size |
| |
| # HMP Task packing settings for 8939, 8929 |
| echo 20 > /proc/sys/kernel/sched_small_task |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent |
| do |
| echo 20 > $cpu_io_percent |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| # disable thermal core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "20000 1113600:50000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo "25000 800000:50000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor |
| echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| |
| # enable thermal core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # HMP scheduler (big.Little cluster related) settings |
| echo 75 > /proc/sys/kernel/sched_upmigrate |
| echo 60 > /proc/sys/kernel/sched_downmigrate |
| |
| # cpu idle load threshold |
| echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load |
| |
| # cpu idle nr run threshold |
| echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run |
| |
| else |
| # Apply 3.0 specific Sched & Governor settings |
| # HMP scheduler settings for 8939 V3.0 |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| echo 20000000 > /proc/sys/kernel/sched_ravg_window |
| |
| # HMP Task packing settings for 8939 V3.0 |
| echo 20 > /proc/sys/kernel/sched_small_task |
| echo 30 > /proc/sys/kernel/sched_mostly_idle_load |
| echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run |
| |
| echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent |
| do |
| echo 20 > $cpu_io_percent |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| # disable thermal core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor |
| echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| |
| # enable thermal core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # HMP scheduler (big.Little cluster related) settings |
| echo 93 > /proc/sys/kernel/sched_upmigrate |
| echo 83 > /proc/sys/kernel/sched_downmigrate |
| |
| # Enable sched guided freq control |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo 50000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 50000 > /proc/sys/kernel/sched_freq_dec_notify |
| |
| # Enable core control |
| # insmod /system/lib/modules/core_ctl.ko |
| echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus |
| echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| case "$revision" in |
| "3.0") |
| # Enable dynamic clock gatin |
| echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating |
| ;; |
| esac |
| fi |
| ;; |
| esac |
| # Set Memory parameters |
| configure_memory_parameters |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8952") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| case "$soc_id" in |
| "264" | "289") |
| # Apply Scheduler and Governor settings for 8952 |
| |
| # HMP scheduler settings |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| echo 20000000 > /proc/sys/kernel/sched_ravg_window |
| |
| # HMP Task packing settings |
| echo 20 > /proc/sys/kernel/sched_small_task |
| echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load |
| |
| echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run |
| |
| echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle |
| |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent |
| do |
| echo 20 > $cpu_io_percent |
| done |
| for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps |
| do |
| echo 30 > $cpu_guard_band |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| # disable thermal & BCL core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| bcl_hotplug_mask=`cat $hotplug_mask` |
| echo 0 > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` |
| echo 0 > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "1 806400:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor |
| echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable Low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # HMP scheduler (big.Little cluster related) settings |
| echo 93 > /proc/sys/kernel/sched_upmigrate |
| echo 83 > /proc/sys/kernel/sched_downmigrate |
| |
| # Enable sched guided freq control |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo 50000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 50000 > /proc/sys/kernel/sched_freq_dec_notify |
| |
| # Enable core control |
| echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus |
| echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| |
| # re-enable thermal & BCL core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| echo $bcl_hotplug_mask > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| echo $bcl_soc_hotplug_mask > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # Enable dynamic clock gating |
| echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating |
| # Enable timer migration to little cluster |
| echo 1 > /proc/sys/kernel/power_aware_timer_migration |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| ;; |
| *) |
| panel=`cat /sys/class/graphics/fb0/modes` |
| if [ "${panel:5:1}" == "x" ]; then |
| panel=${panel:2:3} |
| else |
| panel=${panel:2:4} |
| fi |
| |
| # Apply Scheduler and Governor settings for 8976 |
| # SoC IDs are 266, 274, 277, 278 |
| |
| # HMP scheduler (big.Little cluster related) settings |
| echo 95 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_downmigrate |
| |
| echo 2 > /proc/sys/kernel/sched_window_stats_policy |
| echo 5 > /proc/sys/kernel/sched_ravg_hist_size |
| |
| echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent |
| do |
| echo 20 > $cpu_io_percent |
| done |
| for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps |
| do |
| echo 30 > $cpu_guard_band |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| # disable thermal & BCL core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| bcl_hotplug_mask=`cat $hotplug_mask` |
| echo 0 > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` |
| echo 0 > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # enable governor for power cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # enable governor for perf cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor |
| echo 883200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 60000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis |
| |
| if [ $panel -gt 1080 ]; then |
| #set texture cache size for resolution greater than 1080p |
| setprop ro.hwui.texture_cache_size 72 |
| fi |
| |
| echo 59000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo "1 691200:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 1382400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo "19000 1382400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo "85 1382400:90 1747200:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| # HMP Task packing settings for 8976 |
| echo 30 > /proc/sys/kernel/sched_small_task |
| echo 20 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load |
| echo 20 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load |
| |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| #Disable CPU retention modes for 32bit builds |
| ProductName=`getprop ro.product.name` |
| if [ "$ProductName" == "msm8952_32" ] || [ "$ProductName" == "msm8952_32_LMT" ]; then |
| echo N > /sys/module/lpm_levels/system/a72/cpu4/retention/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a72/cpu5/retention/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a72/cpu6/retention/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a72/cpu7/retention/idle_enabled |
| fi |
| |
| if [ `cat /sys/devices/soc0/revision` == "1.0" ]; then |
| # Disable l2-pc and l2-gdhs low power modes |
| echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a53/a53-l2-pc/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a72/a72-l2-pc/idle_enabled |
| fi |
| |
| # Enable LPM Prediction |
| echo 1 > /sys/module/lpm_levels/parameters/lpm_prediction |
| |
| # Enable Low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| # Disable L2 GDHS on 8976 |
| echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled |
| |
| # Enable sched guided freq control |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo 50000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 50000 > /proc/sys/kernel/sched_freq_dec_notify |
| |
| # Enable core control |
| #for 8976 |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/max_cpus |
| echo 68 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster |
| |
| # re-enable thermal & BCL core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| echo $bcl_hotplug_mask > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| echo $bcl_soc_hotplug_mask > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # Enable timer migration to little cluster |
| echo 1 > /proc/sys/kernel/power_aware_timer_migration |
| |
| case "$soc_id" in |
| "277" | "278") |
| # Start energy-awareness for 8976 |
| start energy-awareness |
| ;; |
| esac |
| |
| #enable sched colocation and colocation inheritance |
| echo 130 > /proc/sys/kernel/sched_grp_upmigrate |
| echo 110 > /proc/sys/kernel/sched_grp_downmigrate |
| echo 1 > /proc/sys/kernel/sched_enable_thread_grouping |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| ;; |
| esac |
| #Enable Memory Features |
| enable_memory_features |
| restorecon -R /sys/devices/system/cpu |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8953") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| case "$soc_id" in |
| "293" | "304" | "338" | "351") |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" ) |
| #if this directory is present, it means that a |
| #1200p panel is connected to the device. |
| dir="/sys/bus/i2c/devices/3-0038" |
| if [ ! -d "$dir" ]; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| |
| if [ $soc_id -eq "338" ]; then |
| case "$hw_platform" in |
| "QRD" ) |
| if [ $platform_subtype_id -eq "1" ]; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| fi |
| |
| #init task load, restrict wakeups to preferred cluster |
| echo 15 > /proc/sys/kernel/sched_init_task_load |
| |
| for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent |
| do |
| echo 34 > $cpu_io_percent |
| done |
| for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps |
| do |
| echo 0 > $cpu_guard_band |
| done |
| for cpu_hist_memory in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory |
| do |
| echo 20 > $cpu_hist_memory |
| done |
| for cpu_hyst_length in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length |
| do |
| echo 10 > $cpu_hyst_length |
| done |
| for cpu_idle_mbps in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps |
| do |
| echo 1600 > $cpu_idle_mbps |
| done |
| for cpu_low_power_delay in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay |
| do |
| echo 20 > $cpu_low_power_delay |
| done |
| for cpu_low_power_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent |
| do |
| echo 34 > $cpu_low_power_io_percent |
| done |
| for cpu_mbps_zones in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones |
| do |
| echo "1611 3221 5859 6445 7104" > $cpu_mbps_zones |
| done |
| for cpu_sample_ms in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms |
| do |
| echo 4 > $cpu_sample_ms |
| done |
| for cpu_up_scale in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale |
| do |
| echo 250 > $cpu_up_scale |
| done |
| for cpu_min_freq in /sys/class/devfreq/soc:qcom,cpubw/min_freq |
| do |
| echo 1611 > $cpu_min_freq |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| |
| # disable thermal & BCL core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| bcl_hotplug_mask=`cat $hotplug_mask` |
| echo 0 > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` |
| echo 0 > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| #if the kernel version >=4.9,use the schedutil governor |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then |
| 8953_sched_dcvs_eas |
| else |
| 8953_sched_dcvs_hmp |
| echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| fi |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # re-enable thermal & BCL core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| echo $bcl_hotplug_mask > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| echo $bcl_soc_hotplug_mask > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # SMP scheduler |
| echo 85 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_downmigrate |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| disable_ppr |
| fi |
| ;; |
| esac |
| case "$soc_id" in |
| "349" | "350") |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" | "QRD" ) |
| start_hbtp |
| ;; |
| esac |
| |
| for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| # Configure DCC module to capture critical register contents when device crashes |
| for DCC_PATH in /sys/bus/platform/devices/*.dcc* |
| do |
| echo 0 > $DCC_PATH/enable |
| echo cap > $DCC_PATH/func_type |
| echo sram > $DCC_PATH/data_sink |
| echo 1 > $DCC_PATH/config_reset |
| |
| # Register specifies APC CPR closed-loop settled voltage for current voltage corner |
| echo 0xb1d2c18 1 > $DCC_PATH/config |
| |
| # Register specifies SW programmed open-loop voltage for current voltage corner |
| echo 0xb1d2900 1 > $DCC_PATH/config |
| |
| # Register specifies APM switch settings and APM FSM state |
| echo 0xb1112b0 1 > $DCC_PATH/config |
| |
| # Register specifies CPR mode change state and also #online cores input to CPR HW |
| echo 0xb018798 1 > $DCC_PATH/config |
| |
| echo 1 > $DCC_PATH/enable |
| done |
| |
| # disable thermal & BCL core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| bcl_hotplug_mask=`cat $hotplug_mask` |
| echo 0 > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` |
| echo 0 > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # configure governor settings for little cluster |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1363200 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for sdm632 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| # sched_load_boost as -6 is equivalent to target load as 85. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| |
| # configure governor settings for big cluster |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| #default value for hispeed_load is 90, for sdm632 it should be 85 |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| # sched_load_boost as -6 is equivalent to target load as 85. |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| |
| echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 633600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| |
| # cpuset settings |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| # choose idle CPU for top app tasks |
| echo 1 > /dev/stune/top-app/schedtune.prefer_idle |
| |
| # re-enable thermal & BCL core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| echo $bcl_hotplug_mask > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| echo $bcl_soc_hotplug_mask > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # Disable Core control |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/enable |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Setting b.L scheduler parameters |
| echo 76 > /proc/sys/kernel/sched_downmigrate |
| echo 86 > /proc/sys/kernel/sched_upmigrate |
| echo 80 > /proc/sys/kernel/sched_group_downmigrate |
| echo 90 > /proc/sys/kernel/sched_group_upmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # Enable min frequency adjustment for big cluster |
| if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then |
| echo "4-7" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster |
| fi |
| echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust |
| |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8937") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| # Socid 386 = Pukeena |
| case "$soc_id" in |
| "303" | "307" | "308" | "309" | "320" | "386" | "436") |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" ) |
| start_hbtp |
| ;; |
| esac |
| |
| case "$hw_platform" in |
| "Surf" | "RCM" ) |
| if [ $platform_subtype_id -ne "4" ]; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| # Apply Scheduler and Governor settings for 8917 / 8920 |
| |
| echo 20000000 > /proc/sys/kernel/sched_ravg_window |
| |
| #disable sched_boost in 8917 |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # core_ctl is not needed for 8917. Disable it. |
| disable_core_ctl |
| |
| if [ $KernelVersionA -le 4 ] && [ $KernelVersionB -le 9 ]; then |
| for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent |
| do |
| echo 20 > $cpu_io_percent |
| done |
| for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps |
| do |
| echo 30 > $cpu_guard_band |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| fi |
| |
| # disable thermal core_control to update interactive gov settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then |
| 8917_sched_dcvs_eas |
| else |
| 8917_sched_dcvs_hmp |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| fi |
| |
| # re-enable thermal core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| # Disable L2-GDHS low power modes |
| echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/suspend_enabled |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # Set rps mask |
| echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus |
| |
| # Enable dynamic clock gating |
| echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating |
| # Enable timer migration to little cluster |
| echo 1 > /proc/sys/kernel/power_aware_timer_migration |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| disable_ppr |
| fi |
| ;; |
| *) |
| ;; |
| esac |
| |
| case "$soc_id" in |
| "294" | "295" | "313" ) |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" ) |
| start_hbtp |
| ;; |
| esac |
| |
| # Apply Scheduler and Governor settings for 8937/8940 |
| |
| # HMP scheduler settings |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| echo 20000000 > /proc/sys/kernel/sched_ravg_window |
| |
| #disable sched_boost in 8937 |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| if [ $KernelVersionA -le 4 ] && [ $KernelVersionB -le 9 ]; then |
| for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor |
| do |
| echo "cpufreq" > $devfreq_gov |
| done |
| |
| for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent |
| do |
| echo 20 > $cpu_io_percent |
| done |
| for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps |
| do |
| echo 30 > $cpu_guard_band |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| fi |
| |
| # disable thermal core_control to update interactive gov and core_ctl settings |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then |
| 8937_sched_dcvs_eas |
| else |
| 8937_sched_dcvs_hmp |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| fi |
| # Disable L2-GDHS low power modes |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # HMP scheduler (big.Little cluster related) settings |
| echo 93 > /proc/sys/kernel/sched_upmigrate |
| echo 83 > /proc/sys/kernel/sched_downmigrate |
| |
| # Enable core control |
| echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus |
| echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| |
| # re-enable thermal core_control |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| # Enable dynamic clock gating |
| echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating |
| # Enable timer migration to little cluster |
| echo 1 > /proc/sys/kernel/power_aware_timer_migration |
| # Set Memory parameters |
| configure_memory_parameters |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| disable_ppr |
| fi |
| ;; |
| *) |
| |
| ;; |
| esac |
| |
| case "$soc_id" in |
| "354" | "364" | "353" | "363" ) |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" | "QRD" ) |
| start_hbtp |
| ;; |
| esac |
| |
| # Apply settings for sdm429/sda429/sdm439/sda439 |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 20 > $cpubw/bw_hwmon/io_percent |
| echo 30 > $cpubw/bw_hwmon/guard_band_mbps |
| done |
| done |
| else |
| for cpubw in /sys/class/devfreq/*qcom,mincpubw* |
| do |
| echo "cpufreq" > $cpubw/governor |
| done |
| |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 20 > $cpubw/bw_hwmon/io_percent |
| echo 30 > $cpubw/bw_hwmon/guard_band_mbps |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| fi |
| |
| case "$soc_id" in |
| "353" | "363" ) |
| # Apply settings for sdm439/sda439 |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # configure schedutil governor settings |
| # enable governor for perf cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| |
| #set the hispeed_freq |
| echo 1497600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 80 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| |
| #input boost params |
| echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| ## enable governor for power cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us |
| |
| #set the hispeed_freq |
| echo 998400 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq |
| echo 85 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq |
| echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq |
| else |
| # configure schedutil governor settings |
| # enable governor for perf cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| |
| #set the hispeed_freq |
| echo 1497600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| ## enable governor for power cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us |
| |
| #set the hispeed_freq |
| echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| fi |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| |
| # EAS scheduler (big.Little cluster related) settings |
| echo 93 > /proc/sys/kernel/sched_upmigrate |
| echo 83 > /proc/sys/kernel/sched_downmigrate |
| echo 140 > /proc/sys/kernel/sched_group_upmigrate |
| echo 120 > /proc/sys/kernel/sched_group_downmigrate |
| |
| # cpuset settings |
| #echo 0-3 > /dev/cpuset/background/cpus |
| #echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # Enable core control |
| echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus |
| echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| |
| # Big cluster min frequency adjust settings |
| if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then |
| echo "0-3" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster |
| fi |
| echo 1305600 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_floor |
| ;; |
| *) |
| # Apply settings for sdm429/sda429 |
| # configure schedutil governor settings |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| |
| #set the hispeed_freq |
| echo 1305600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 80 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| #input boost params |
| |
| echo 1305600 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| else |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| |
| #set the hispeed_freq |
| echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| fi |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| ;; |
| esac |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then |
| disable_ppr |
| fi |
| |
| #disable sched_boost |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Disable L2-GDHS low power modes |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled |
| |
| # Enable low power modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| case "$soc_id" in |
| "353" | "363" ) |
| echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$soc_id" in |
| "386" | "436") |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "QRD" ) |
| start_hbtp |
| ;; |
| esac |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "sdm660") |
| |
| # Set the default IRQ affinity to the primary cluster. When a |
| # CPU is isolated/hotplugged, the IRQ affinity is adjusted |
| # to one of the CPU from the default IRQ affinity mask. |
| echo f > /proc/irq/default_smp_affinity |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| panel=`cat /sys/class/graphics/fb0/modes` |
| if [ "${panel:5:1}" == "x" ]; then |
| panel=${panel:2:3} |
| else |
| panel=${panel:2:4} |
| fi |
| |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then |
| if [ $panel -gt 1080 ]; then |
| echo 2 > /proc/sys/kernel/sched_window_stats_policy |
| echo 5 > /proc/sys/kernel/sched_ravg_hist_size |
| else |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| fi |
| fi |
| #Apply settings for sdm660, sdm636,sda636 |
| case "$soc_id" in |
| "317" | "324" | "325" | "326" | "345" | "346" ) |
| |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 96 > /proc/sys/kernel/sched_upmigrate |
| echo 90 > /proc/sys/kernel/sched_downmigrate |
| echo 140 > /proc/sys/kernel/sched_group_upmigrate |
| echo 120 > /proc/sys/kernel/sched_group_downmigrate |
| |
| # cpuset settings |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| #if the kernel version >=4.14,use the schedutil governor |
| if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then |
| sdm660_sched_schedutil_dcvs |
| else |
| sdm660_sched_interactive_dcvs |
| fi |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # enable LPM |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # Start cdsprpcd only for sdm660 and disable for sdm630 |
| start vendor.cdsprpcd |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" | "QRD" ) |
| start_hbtp |
| ;; |
| esac |
| ;; |
| esac |
| #Apply settings for sdm630 and Tahaa |
| case "$soc_id" in |
| "318" | "327" | "385" ) |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" | "QRD" ) |
| start_hbtp |
| ;; |
| esac |
| |
| # Disable cdsprpcd daemon for sdm630 |
| setprop vendor.fastrpc.disable.cdsprpcd.daemon 1 |
| |
| # Setting b.L scheduler parameters |
| echo 85 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_downmigrate |
| echo 900 > /proc/sys/kernel/sched_group_upmigrate |
| echo 900 > /proc/sys/kernel/sched_group_downmigrate |
| echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us |
| echo 400000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 400000 > /proc/sys/kernel/sched_freq_dec_notify |
| echo 3 > /proc/sys/kernel/sched_spill_nr_run |
| |
| #init task load, restrict wakeups to preferred cluster |
| echo 15 > /proc/sys/kernel/sched_init_task_load |
| echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill |
| echo 50000 > /proc/sys/kernel/sched_short_burst_ns |
| |
| # cpuset settings |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| # disable thermal bcl hotplug to switch governor |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| bcl_hotplug_mask=`cat $hotplug_mask` |
| echo 0 > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` |
| echo 0 > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # online CPU0 |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| # configure governor settings for Big cluster(CPU0 to CPU3) |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo "19000 1344000:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1344000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "85 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis |
| echo 787200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif |
| |
| # online CPU4 |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| # configure governor settings for Little cluster(CPU4 to CPU7) |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 1094400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "85 1094400:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis |
| echo 614400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif |
| |
| # bring all cores online |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| |
| # configure LPM |
| echo N > /sys/module/lpm_levels/system/perf/cpu0/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu1/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu2/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu3/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu4/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu5/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu6/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu7/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled |
| # enable LPM |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| # re-enable thermal and BCL hotplug |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| echo $bcl_hotplug_mask > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| echo $bcl_soc_hotplug_mask > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 762 > $cpubw/min_freq |
| echo "1525 3143 4173 5195 5859 7759 9887 10327" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 100 > $cpubw/bw_hwmon/decay_rate |
| echo 50 > $cpubw/bw_hwmon/bw_step |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps |
| echo 50 > $cpubw/bw_hwmon/low_power_io_percent |
| echo 20 > $cpubw/bw_hwmon/low_power_delay |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "sdm710") |
| |
| #Apply settings for sdm710 |
| # Set the default IRQ affinity to the silver cluster. When a |
| # CPU is isolated/hotplugged, the IRQ affinity is adjusted |
| # to one of the CPU from the default IRQ affinity mask. |
| echo 3f > /proc/irq/default_smp_affinity |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| case "$soc_id" in |
| "336" | "337" | "347" | "360" | "393" ) |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" | "QRD" ) |
| start_hbtp |
| ;; |
| esac |
| |
| # Core control parameters on silver |
| echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 96 > /proc/sys/kernel/sched_upmigrate |
| echo 90 > /proc/sys/kernel/sched_downmigrate |
| echo 140 > /proc/sys/kernel/sched_group_upmigrate |
| echo 120 > /proc/sys/kernel/sched_group_downmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us |
| echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq |
| echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load |
| |
| echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| #Enable mem_latency governor for DDR scaling |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| #Enable mem_latency governor for L3 scaling |
| for memlat in /sys/class/devfreq/*qcom,l3-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| #Enable userspace governor for L3 cdsp nodes |
| for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp* |
| do |
| echo "userspace" > $l3cdsp/governor |
| chown -h system $l3cdsp/userspace/set_freq |
| done |
| |
| echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| |
| # Disable CPU Retention |
| echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes. |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "trinket") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| case "$soc_id" in |
| "394" | "467" | "468" ) |
| |
| # Core control parameters on big |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 67 > /proc/sys/kernel/sched_downmigrate |
| echo 77 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| |
| # cpuset settings |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` |
| ddr_type4="07" |
| ddr_type3="05" |
| |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 762 > $cpubw/min_freq |
| if [ ${ddr_type:4:2} == $ddr_type4 ]; then |
| # LPDDR4 |
| echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| fi |
| if [ ${ddr_type:4:2} == $ddr_type3 ]; then |
| # LPDDR3 |
| echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| fi |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 90 > $cpubw/bw_hwmon/decay_rate |
| echo 190 > $cpubw/bw_hwmon/bw_step |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 50 > $cpubw/polling_interval |
| done |
| |
| done |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # colcoation v3 disabled |
| echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost |
| echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation |
| echo 0 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes. |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "sm6150") |
| |
| #Apply settings for sm6150 |
| # Set the default IRQ affinity to the silver cluster. When a |
| # CPU is isolated/hotplugged, the IRQ affinity is adjusted |
| # to one of the CPU from the default IRQ affinity mask. |
| echo 3f > /proc/irq/default_smp_affinity |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| case "$soc_id" in |
| "355" | "369" | "377" | "380" | "384" ) |
| target_type=`getprop ro.hardware.type` |
| if [ "$target_type" == "automotive" ]; then |
| # update frequencies |
| configure_sku_parameters |
| sku_identified=`getprop vendor.sku_identified` |
| else |
| sku_identified=0 |
| fi |
| |
| # Core control parameters on silver |
| echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable |
| |
| |
| # Setting b.L scheduler parameters |
| # default sched up and down migrate values are 90 and 85 |
| echo 65 > /proc/sys/kernel/sched_downmigrate |
| echo 71 > /proc/sys/kernel/sched_upmigrate |
| # default sched up and down migrate values are 100 and 95 |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # colocation v3 settings |
| echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz |
| |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| if [ $sku_identified != 1 ]; then |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| fi |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq |
| if [ $sku_identified != 1 ]; then |
| echo 768000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| fi |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load |
| |
| echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 50 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 68 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 0 > $llccbw/bw_hwmon/hyst_length |
| echo 80 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 40 > $llccbw/polling_interval |
| done |
| done |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes. |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| |
| #Apply settings for moorea |
| case "$soc_id" in |
| "365" | "366" ) |
| |
| # Core control parameters on silver |
| echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable |
| |
| # Setting b.L scheduler parameters |
| # default sched up and down migrate values are 71 and 65 |
| echo 65 > /proc/sys/kernel/sched_downmigrate |
| echo 71 > /proc/sys/kernel/sched_upmigrate |
| # default sched up and down migrate values are 100 and 95 |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| #colocation v3 settings |
| echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us |
| echo 1324600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq |
| echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load |
| |
| echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 50 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 68 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 0 > $llccbw/bw_hwmon/hyst_length |
| echo 80 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 40 > $llccbw/polling_interval |
| done |
| |
| for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881" > $npubw/bw_hwmon/mbps_zones |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 80 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 10 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 0 > $npubw/bw_hwmon/idle_mbps |
| echo 40 > $npubw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| done |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes. |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| |
| ;; |
| esac |
| |
| |
| case "$target" in |
| "lito") |
| |
| #Apply settings for lito |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| fi |
| |
| case "$soc_id" in |
| "400" | "440" | "476" ) |
| # Core control parameters on silver |
| echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| |
| # Disable Core control on gold, prime |
| echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable |
| echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/enable |
| |
| # Setting b.L scheduler parameters |
| echo 65 85 > /proc/sys/kernel/sched_downmigrate |
| echo 71 95 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns |
| echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus |
| echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms |
| |
| # disable unfiltering |
| echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period |
| echo 1 > /proc/sys/kernel/sched_task_unfilter_nr_windows |
| |
| # configure governor settings for silver cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| echo 650000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| |
| # configure governor settings for gold cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/down_rate_limit_us |
| echo 1228800 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq |
| echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/pl |
| echo 672000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq |
| |
| # configure governor settings for gold+ cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us |
| echo 1228800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq |
| echo 85 > /sys/devices/system/cpu/cpu7/cpufreq/schedutil/hispeed_load |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl |
| echo 672000 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/rtg_boost_freq |
| |
| # colocation v3 settings |
| echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost |
| echo 35 > /proc/sys/kernel/sched_min_task_util_for_colocation |
| |
| # Enable conservative pl |
| echo 1 > /proc/sys/kernel/sched_conservative_pl |
| |
| echo "0:1228800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| if [ `cat /sys/devices/soc0/revision` == "2.0" ]; then |
| # r2.0 related changes |
| echo "0:1075200" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 610000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| echo 1075200 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 1152000 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq |
| echo 1401600 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq |
| echo 614400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| echo 652800 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq |
| echo 806400 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq |
| echo 83 > /proc/sys/kernel/sched_asym_cap_sibling_freq_match_pct |
| fi |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "2288 4577 7110 9155 12298 14236 16265" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 50 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 68 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 0 > $llccbw/bw_hwmon/hyst_length |
| echo 80 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 50 > $llccbw/polling_interval |
| done |
| |
| for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 80 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 10 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 0 > $npubw/bw_hwmon/idle_mbps |
| echo 40 > $npubw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| |
| for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npullccbw/governor |
| echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones |
| echo 4 > $npullccbw/bw_hwmon/sample_ms |
| echo 100 > $npullccbw/bw_hwmon/io_percent |
| echo 20 > $npullccbw/bw_hwmon/hist_memory |
| echo 10 > $npullccbw/bw_hwmon/hyst_length |
| echo 30 > $npullccbw/bw_hwmon/down_thres |
| echo 0 > $npullccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $npullccbw/bw_hwmon/up_scale |
| echo 40 > $npullccbw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| done |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 0 |
| setprop vendor.dcvs.prop 1 |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| |
| #Apply settings for lagoon |
| case "$soc_id" in |
| "434" | "459" ) |
| |
| # Core control parameters on silver |
| echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| |
| # Disable Core control on gold |
| echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable |
| |
| |
| # disable unfiltering |
| echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period |
| |
| # Setting b.L scheduler parameters |
| # default sched up and down migrate values are 95 and 85 |
| echo 65 > /proc/sys/kernel/sched_downmigrate |
| echo 71 > /proc/sys/kernel/sched_upmigrate |
| |
| # default sched up and down migrate values are 100 and 95 |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns |
| echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus |
| echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us |
| echo 1248000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq |
| echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| |
| #colocation v3 settings |
| echo 740000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq |
| echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load |
| |
| # Enable conservative pl |
| echo 1 > /proc/sys/kernel/sched_conservative_pl |
| |
| echo "0:1248000" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 50 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 68 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 0 > $llccbw/bw_hwmon/hyst_length |
| echo 80 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 40 > $llccbw/polling_interval |
| done |
| |
| for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 80 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 10 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 0 > $npubw/bw_hwmon/idle_mbps |
| echo 40 > $npubw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| |
| for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npullccbw/governor |
| echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones |
| echo 4 > $npullccbw/bw_hwmon/sample_ms |
| echo 100 > $npullccbw/bw_hwmon/io_percent |
| echo 20 > $npullccbw/bw_hwmon/hist_memory |
| echo 10 > $npullccbw/bw_hwmon/hyst_length |
| echo 30 > $npullccbw/bw_hwmon/down_thres |
| echo 0 > $npullccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $npullccbw/bw_hwmon/up_scale |
| echo 40 > $npullccbw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| done |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn off sleep modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| esac |
| |
| case "$target" in |
| "bengal") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| case "$soc_id" in |
| "417" | "420" | "444" | "445" | "469" | "470" ) |
| |
| # Core control is temporarily disabled till bring up |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| # Core control parameters on big |
| echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 67 > /proc/sys/kernel/sched_downmigrate |
| echo 77 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| |
| # cpuset settings |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us |
| echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq |
| |
| echo "0:1017600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms |
| |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` |
| ddr_type4="07" |
| ddr_type3="05" |
| |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 762 > $cpubw/min_freq |
| if [ ${ddr_type:4:2} == $ddr_type4 ]; then |
| # LPDDR4 |
| echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| fi |
| if [ ${ddr_type:4:2} == $ddr_type3 ]; then |
| # LPDDR3 |
| echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| fi |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 90 > $cpubw/bw_hwmon/decay_rate |
| echo 190 > $cpubw/bw_hwmon/bw_step |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| done |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # colcoation v3 disabled |
| echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost |
| echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| ;; |
| esac |
| |
| #power/perf tunings for khaje |
| case "$soc_id" in |
| "518" | "561" | "585" | "586" ) |
| |
| # Core control parameters on big |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 65 > /proc/sys/kernel/sched_downmigrate |
| echo 71 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| |
| # cpuset settings |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1516800 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us |
| echo 1344000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq |
| |
| echo "0:1190000" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms |
| |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 762 > $cpubw/min_freq |
| echo "2288 3440 4173 5195 5859 7759 10322 11863 13763 15960" > $cpubw/bw_hwmon/mbps_zones |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 90 > $cpubw/bw_hwmon/decay_rate |
| echo 190 > $cpubw/bw_hwmon/bw_step |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| done |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # colcoation v3 disabled |
| echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost |
| echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled |
| # Turn on sleep modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| ;; |
| esac |
| |
| # Scuba perf/power tunings |
| case "$soc_id" in |
| "441" | "471" | "473" | "474" ) |
| |
| # Quad-core device. disable core_ctl |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| |
| # Configure schedutil governor settings |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. |
| echo 0 > /proc/sys/kernel/sched_boost |
| echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` |
| ddr_type4="07" |
| ddr_type3="05" |
| |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 762 > $cpubw/min_freq |
| if [ ${ddr_type:4:2} == $ddr_type4 ]; then |
| # LPDDR4 |
| echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 85 > $cpubw/bw_hwmon/io_percent |
| fi |
| if [ ${ddr_type:4:2} == $ddr_type3 ]; then |
| # LPDDR3 |
| echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| fi |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 90 > $cpubw/bw_hwmon/decay_rate |
| echo 190 > $cpubw/bw_hwmon/bw_step |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| done |
| |
| # Disable low power modes. Enable it after LPM stable |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| |
| ;; |
| esac |
| |
| |
| #Apply settings for atoll |
| case "$target" in |
| "atoll") |
| |
| # Core control parameters on silver |
| echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable |
| |
| # Setting b.L scheduler parameters |
| # default sched up and down migrate values are 95 and 85 |
| echo 65 > /proc/sys/kernel/sched_downmigrate |
| echo 71 > /proc/sys/kernel/sched_upmigrate |
| # default sched up and down migrate values are 100 and 95 |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| #colocation v3 settings |
| echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us |
| echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us |
| echo 1267200 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq |
| echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| |
| # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. |
| echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost |
| echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost |
| echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load |
| |
| echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 50 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 68 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 0 > $llccbw/bw_hwmon/hyst_length |
| echo 80 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 40 > $llccbw/polling_interval |
| done |
| |
| for npubw in $device/*npu*-npu-ddr-bw/devfreq/*npu*-npu-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| echo "1144 1720 2086 2929 3879 5931 6881 8137" > $npubw/bw_hwmon/mbps_zones |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 80 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 10 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 0 > $npubw/bw_hwmon/idle_mbps |
| echo 40 > $npubw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| |
| done |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| ;; |
| esac |
| |
| |
| case "$target" in |
| "qcs605") |
| |
| #Apply settings for qcs605 |
| # Set the default IRQ affinity to the silver cluster. When a |
| # CPU is isolated/hotplugged, the IRQ affinity is adjusted |
| # to one of the CPU from the default IRQ affinity mask. |
| echo 3f > /proc/irq/default_smp_affinity |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| case "$soc_id" in |
| "347" ) |
| |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "Surf" | "RCM" | "QRD" ) |
| start_hbtp |
| ;; |
| "MTP" ) |
| if [ $platform_subtype_id != 5 ]; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| |
| # Core control parameters on silver |
| echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres |
| echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster |
| echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 96 > /proc/sys/kernel/sched_upmigrate |
| echo 90 > /proc/sys/kernel/sched_downmigrate |
| echo 140 > /proc/sys/kernel/sched_group_upmigrate |
| echo 120 > /proc/sys/kernel/sched_group_downmigrate |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us |
| echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq |
| echo 825600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq |
| |
| echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 68 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 0 > $cpubw/bw_hwmon/hyst_length |
| echo 80 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps |
| echo 68 > $cpubw/bw_hwmon/low_power_io_percent |
| echo 20 > $cpubw/bw_hwmon/low_power_delay |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| #Enable mem_latency governor for DDR scaling |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| #Enable mem_latency governor for L3 scaling |
| for memlat in /sys/class/devfreq/*qcom,l3-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| |
| # cpuset parameters |
| echo 0-5 > /dev/cpuset/background/cpus |
| echo 0-5 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Turn on sleep modes. |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| echo 100 > /proc/sys/vm/swappiness |
| ;; |
| esac |
| ;; |
| esac |
| |
| case "$target" in |
| "apq8084") |
| echo 4 > /sys/module/lpm_levels/enable_low_power/l2 |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor |
| do |
| echo "cpubw_hwmon" > $devfreq_gov |
| done |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
| echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
| echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor |
| echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 1497600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 20 > /sys/module/cpu_boost/parameters/boost_ms |
| echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold |
| echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate |
| echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h root.system /sys/devices/system/cpu/mfreq |
| chmod -h 220 /sys/devices/system/cpu/mfreq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chown -h root.system /sys/devices/system/cpu/cpu2/online |
| chown -h root.system /sys/devices/system/cpu/cpu3/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu2/online |
| chmod -h 664 /sys/devices/system/cpu/cpu3/online |
| ;; |
| esac |
| |
| case "$target" in |
| "mpq8092") |
| echo 4 > /sys/module/lpm_levels/enable_low_power/l2 |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled |
| echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
| echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold |
| echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
| chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| chown -h root.system /sys/devices/system/cpu/mfreq |
| chmod -h 220 /sys/devices/system/cpu/mfreq |
| chown -h root.system /sys/devices/system/cpu/cpu1/online |
| chown -h root.system /sys/devices/system/cpu/cpu2/online |
| chown -h root.system /sys/devices/system/cpu/cpu3/online |
| chmod -h 664 /sys/devices/system/cpu/cpu1/online |
| chmod -h 664 /sys/devices/system/cpu/cpu2/online |
| chmod -h 664 /sys/devices/system/cpu/cpu3/online |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8992") |
| # disable thermal bcl hotplug to switch governor |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode |
| bcl_hotplug_mask=`cat /sys/devices/soc.*/qcom,bcl.*/hotplug_mask` |
| echo 0 > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask |
| echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| # configure governor settings for little cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis |
| echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| # online CPU4 |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| # configure governor settings for big cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 1536000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis |
| echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| # re-enable thermal and BCL hotplug |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode |
| echo $bcl_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask |
| echo $bcl_soc_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_soc_mask |
| echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode |
| # plugin remaining A57s |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| # input boost configuration |
| echo 0:1248000 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| # Enable task migration fixups in the scheduler |
| echo 1 > /proc/sys/kernel/sched_migration_fixup |
| for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| done |
| #enable rps static configuration |
| echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus |
| echo 30 > /proc/sys/kernel/sched_small_task |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8994") |
| # ensure at most one A57 is online when thermal hotplug is disabled |
| echo 0 > /sys/devices/system/cpu/cpu5/online |
| echo 0 > /sys/devices/system/cpu/cpu6/online |
| echo 0 > /sys/devices/system/cpu/cpu7/online |
| # in case CPU4 is online, limit its frequency |
| echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| # Limit A57 max freq from msm_perf module in case CPU 4 is offline |
| echo "4:960000 5:960000 6:960000 7:960000" > /sys/module/msm_performance/parameters/cpu_max_freq |
| # disable thermal bcl hotplug to switch governor |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| bcl_hotplug_mask=`cat $hotplug_mask` |
| echo 0 > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| bcl_soc_hotplug_mask=`cat $hotplug_soc_mask` |
| echo 0 > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| # configure governor settings for little cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis |
| echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| # online CPU4 |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| # Best effort limiting for first time boot if msm_performance module is absent |
| echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| # configure governor settings for big cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo "19000 1400000:39000 1700000:19000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 1248000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis |
| echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| # restore A57's max |
| cat /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| # re-enable thermal and BCL hotplug |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n disable > $mode |
| done |
| for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask |
| do |
| echo $bcl_hotplug_mask > $hotplug_mask |
| done |
| for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask |
| do |
| echo $bcl_soc_hotplug_mask > $hotplug_soc_mask |
| done |
| for mode in /sys/devices/soc.0/qcom,bcl.*/mode |
| do |
| echo -n enable > $mode |
| done |
| # plugin remaining A57s |
| echo 1 > /sys/devices/system/cpu/cpu5/online |
| echo 1 > /sys/devices/system/cpu/cpu6/online |
| echo 1 > /sys/devices/system/cpu/cpu7/online |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| # Restore CPU 4 max freq from msm_performance |
| echo "4:4294967295 5:4294967295 6:4294967295 7:4294967295" > /sys/module/msm_performance/parameters/cpu_max_freq |
| # input boost configuration |
| echo 0:1344000 > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| # Setting b.L scheduler parameters |
| echo 1 > /proc/sys/kernel/sched_migration_fixup |
| echo 30 > /proc/sys/kernel/sched_small_task |
| echo 20 > /proc/sys/kernel/sched_mostly_idle_load |
| echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run |
| echo 99 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_downmigrate |
| echo 400000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 400000 > /proc/sys/kernel/sched_freq_dec_notify |
| #enable rps static configuration |
| echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus |
| for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| done |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8996") |
| # disable thermal bcl hotplug to switch governor |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode |
| bcl_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_mask` |
| echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_mask |
| bcl_soc_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask` |
| echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask |
| echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode |
| # set sync wakee policy tunable |
| echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker |
| # configure governor settings for little cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis |
| echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif |
| # online CPU2 |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| # configure governor settings for big cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif |
| echo "19000 1400000:39000 1700000:19000 2100000:79000" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate |
| echo 1248000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy |
| echo "85 1500000:90 1800000:70 2100000:95" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads |
| echo 19000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time |
| echo 79000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis |
| echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif |
| # re-enable thermal and BCL hotplug |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode |
| echo $bcl_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_mask |
| echo $bcl_soc_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask |
| echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode |
| # input boost configuration |
| echo "0:1324800 2:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| # Setting b.L scheduler parameters |
| echo 0 > /proc/sys/kernel/sched_boost |
| echo 1 > /proc/sys/kernel/sched_migration_fixup |
| echo 45 > /proc/sys/kernel/sched_downmigrate |
| echo 45 > /proc/sys/kernel/sched_upmigrate |
| echo 400000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 400000 > /proc/sys/kernel/sched_freq_dec_notify |
| echo 3 > /proc/sys/kernel/sched_spill_nr_run |
| echo 100 > /proc/sys/kernel/sched_init_task_load |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 1525 > $cpubw/min_freq |
| echo "1525 5195 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps |
| echo 34 > $cpubw/bw_hwmon/low_power_io_percent |
| echo 20 > $cpubw/bw_hwmon/low_power_delay |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| done |
| echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| |
| soc_revision=`cat /sys/devices/soc0/revision` |
| if [ "$soc_revision" == "2.0" ]; then |
| #Disable suspend for v2.0 |
| echo pwr_dbg > /sys/power/wake_lock |
| elif [ "$soc_revision" == "2.1" ]; then |
| # Enable C4.D4.E4.M3 LPM modes |
| # Disable D3 state |
| echo 0 > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled |
| echo 0 > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled |
| # Disable DEF-FPC mode |
| echo N > /sys/module/lpm_levels/system/pwr/cpu0/fpc-def/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu1/fpc-def/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu2/fpc-def/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu3/fpc-def/idle_enabled |
| else |
| # Enable all LPMs by default |
| # This will enable C4, D4, D3, E4 and M3 LPMs |
| echo N > /sys/module/lpm_levels/parameters/sleep_disabled |
| fi |
| echo N > /sys/module/lpm_levels/parameters/sleep_disabled |
| # Starting io prefetcher service |
| start iop |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| ;; |
| esac |
| |
| case "$target" in |
| "sdm845") |
| |
| # Set the default IRQ affinity to the silver cluster. When a |
| # CPU is isolated/hotplugged, the IRQ affinity is adjusted |
| # to one of the CPU from the default IRQ affinity mask. |
| echo f > /proc/irq/default_smp_affinity |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| case "$soc_id" in |
| "321" | "341") |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "QRD" ) |
| case "$platform_subtype_id" in |
| "32") #QVR845 do nothing |
| ;; |
| *) |
| start_hbtp |
| ;; |
| esac |
| ;; |
| *) |
| start_hbtp |
| ;; |
| esac |
| ;; |
| esac |
| # Core control parameters |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 95 > /proc/sys/kernel/sched_upmigrate |
| echo 85 > /proc/sys/kernel/sched_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 95 > /proc/sys/kernel/sched_group_downmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # configure governor settings for little cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl |
| echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| |
| # configure governor settings for big cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us |
| echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/pl |
| echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms |
| # Limit the min frequency to 825MHz |
| echo 825000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| |
| # Enable oom_reaper |
| echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper |
| |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo "2288 4577 6500 8132 9155 10681" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 50 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| for llccbw in /sys/class/devfreq/*qcom,llccbw* |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo 50 > $llccbw/polling_interval |
| echo "1720 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 80 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 10 > $llccbw/bw_hwmon/hyst_length |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| done |
| |
| #Enable mem_latency governor for DDR scaling |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| #Enable mem_latency governor for L3 scaling |
| for memlat in /sys/class/devfreq/*qcom,l3-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| #Enable userspace governor for L3 cdsp nodes |
| for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp* |
| do |
| echo "userspace" > $l3cdsp/governor |
| chown -h system $l3cdsp/userspace/set_freq |
| done |
| |
| #Gold L3 ratio ceil |
| echo 4000 > /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil |
| |
| echo "compute" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| echo 10 > /sys/class/devfreq/soc:qcom,mincpubw/polling_interval |
| |
| # cpuset parameters |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| # Disable CPU Retention |
| echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/L3/l3-dyn-ret/idle_enabled |
| # Turn on sleep modes. |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| echo 100 > /proc/sys/vm/swappiness |
| echo 120 > /proc/sys/vm/watermark_scale_factor |
| ;; |
| esac |
| |
| case "$target" in |
| "msmnile") |
| # cpuset parameters |
| target_varient=`getprop ro.build.product` |
| if [ "$target_varient" == "msmnile_gvmq" ] || [ "$target_varient" == "msmnile_gvmgh" ]; then |
| echo 4-7 > /dev/cpuset/background/cpus |
| echo 4-7 > /dev/cpuset/system-background/cpus |
| |
| # Enable oom_reaper |
| if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then |
| echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper |
| else |
| echo 1 > /proc/sys/vm/reap_mem_on_sigkill |
| fi |
| # Disable wsf, beacause we are using efk. |
| # wsf Range : 1..1000 So set to bare minimum value 1. |
| echo 1 > /proc/sys/vm/watermark_scale_factor |
| |
| # Disable wsf, beacause we are using efk. |
| # wsf Range : 1..1000 So set to bare minimum value 1. |
| echo 1 > /proc/sys/vm/watermark_scale_factor |
| # Enable oom_reaper |
| echo 1 > /proc/sys/vm/reap_mem_on_sigkill |
| |
| else |
| # Core control parameters for gold |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Core control parameters for gold+ |
| echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres |
| # Controls how many more tasks should be eligible to run on gold CPUs |
| # w.r.t number of gold CPUs available to trigger assist (max number of |
| # tasks eligible to run on previous cluster minus number of CPUs in |
| # the previous cluster). |
| # |
| # Setting to 1 by default which means there should be at least |
| # 4 tasks eligible to run on gold cluster (tasks running on gold cores |
| # plus misfit tasks on silver cores) to trigger assitance from gold+. |
| echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh |
| |
| # Disable Core control on silver |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| |
| # Setting b.L scheduler parameters |
| echo 95 95 > /proc/sys/kernel/sched_upmigrate |
| echo 85 85 > /proc/sys/kernel/sched_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 10 > /proc/sys/kernel/sched_group_downmigrate |
| |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| |
| |
| # configure governor settings for silver cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| |
| # configure governor settings for gold cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl |
| |
| # configure governor settings for gold+ cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl |
| |
| # configure input boost settings |
| echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Disable wsf, beacause we are using efk. |
| # wsf Range : 1..1000 So set to bare minimum value 1. |
| echo 1 > /proc/sys/vm/watermark_scale_factor |
| |
| # Enable oom_reaper |
| if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then |
| echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper |
| else |
| echo 1 > /proc/sys/vm/reap_mem_on_sigkill |
| fi |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 50 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 30 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 14236 > $cpubw/max_freq |
| echo 40 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 80 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 10 > $llccbw/bw_hwmon/hyst_length |
| echo 30 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 6881 > $llccbw/max_freq |
| echo 40 > $llccbw/polling_interval |
| done |
| |
| for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 80 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 6 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 0 > $npubw/bw_hwmon/idle_mbps |
| echo 40 > $npubw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| done |
| fi |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 1 |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" ) |
| # Start Host based Touch processing |
| case "$platform_subtype_id" in |
| "0" | "1" | "2" | "3" | "4") |
| start_hbtp |
| ;; |
| esac |
| ;; |
| "HDK" ) |
| if [ -d /sys/kernel/hbtpsensor ] ; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| configure_memory_parameters |
| target_type=`getprop ro.hardware.type` |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| if [ "$target_type" == "automotive" ]; then |
| # update frequencies |
| if [ "$soc_id" == "340" ] | [ "$soc_id" == "405" ]; then #sa8195 |
| configure_automotive_sku_parameters_sa8195 |
| else #sa8155 |
| configure_automotive_sku_parameters |
| fi |
| fi |
| ;; |
| esac |
| |
| case "$target" in |
| "sdmshrike") |
| # Core control parameters for gold |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Core control parameters for gold+ |
| echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres |
| # Controls how many more tasks should be eligible to run on gold CPUs |
| # w.r.t number of gold CPUs available to trigger assist (max number of |
| # tasks eligible to run on previous cluster minus number of CPUs in |
| # the previous cluster). |
| # |
| # Setting to 1 by default which means there should be at least |
| # 4 tasks eligible to run on gold cluster (tasks running on gold cores |
| # plus misfit tasks on silver cores) to trigger assitance from gold+. |
| echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh |
| |
| # Disable Core control on silver |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| |
| # Setting b.L scheduler parameters |
| echo 95 95 > /proc/sys/kernel/sched_upmigrate |
| echo 85 85 > /proc/sys/kernel/sched_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 10 > /proc/sys/kernel/sched_group_downmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| |
| # cpuset parameters |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # configure governor settings for silver cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| |
| # configure governor settings for gold cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us |
| echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl |
| |
| # configure governor settings for gold+ cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us |
| echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl |
| |
| # configure input boost settings |
| echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms |
| |
| # Disable wsf, beacause we are using efk. |
| # wsf Range : 1..1000 So set to bare minimum value 1. |
| echo 1 > /proc/sys/vm/watermark_scale_factor |
| |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| # Enable oom_reaper |
| if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then |
| echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper |
| else |
| echo 1 > /proc/sys/vm/reap_mem_on_sigkill |
| fi |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 40 > $cpubw/polling_interval |
| echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 50 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 30 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 14236 > $cpubw/max_freq |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| echo 40 > $llccbw/polling_interval |
| echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 80 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 10 > $llccbw/bw_hwmon/hyst_length |
| echo 30 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 6881 > $llccbw/max_freq |
| done |
| |
| for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| echo 40 > $npubw/polling_interval |
| echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 80 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 6 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 0 > $npubw/bw_hwmon/idle_mbps |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| |
| #Enable mem_latency governor for L3, LLCC, and DDR scaling |
| for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| |
| #Enable userspace governor for L3 cdsp nodes |
| for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat |
| do |
| echo "cdspl3" > $l3cdsp/governor |
| done |
| |
| #Enable compute governor for gold latfloor |
| for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* |
| do |
| echo "compute" > $latfloor/governor |
| echo 10 > $latfloor/polling_interval |
| done |
| |
| #Gold L3 ratio ceil |
| for l3gold in $device/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat |
| do |
| echo 4000 > $l3gold/mem_latency/ratio_ceil |
| done |
| |
| #Prime L3 ratio ceil |
| for l3prime in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat |
| do |
| echo 20000 > $l3prime/mem_latency/ratio_ceil |
| done |
| done |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| case "$hw_platform" in |
| "MTP" | "Surf" | "RCM" ) |
| # Start Host based Touch processing |
| case "$platform_subtype_id" in |
| "0" | "1") |
| start_hbtp |
| ;; |
| esac |
| ;; |
| "HDK" ) |
| if [ -d /sys/kernel/hbtpsensor ] ; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| |
| #Setting the min and max supported frequencies |
| reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` |
| feature_id=$(((reg_val >> 20) & 0xFF)) |
| |
| #Setting the min supported frequencies |
| echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq |
| echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq |
| echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq |
| echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq |
| #setting min gpu freq to 392 MHz |
| echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel |
| if [ $feature_id == 0 ]; then |
| echo "feature_id is 0 for SA8195AA" |
| |
| #setting max cpu freq to 2.496GHz |
| echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| #setting max gpu freq to 530 MHz |
| echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 1804 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then |
| echo "feature_id is 1 for external SA8195AB" |
| echo "feature_id is 2 for internal SA8195AB" |
| |
| #setting max cpu freq to 2.496GHz |
| echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq |
| #setting max gpu freq to 670 MHz |
| echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel |
| echo 2092 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq |
| elif [ $feature_id == 3 ]; then |
| echo "feature_id is 3 for external SA8195AC" |
| else |
| echo "unknown feature_id value" $feature_id |
| fi |
| |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| configure_memory_parameters |
| ;; |
| esac |
| |
| case "$target" in |
| "kona") |
| rev=`cat /sys/devices/soc0/revision` |
| ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type` |
| ddr_type4="07" |
| ddr_type5="08" |
| |
| # Core control parameters for gold |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Core control parameters for gold+ |
| echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres |
| # Controls how many more tasks should be eligible to run on gold CPUs |
| # w.r.t number of gold CPUs available to trigger assist (max number of |
| # tasks eligible to run on previous cluster minus number of CPUs in |
| # the previous cluster). |
| # |
| # Setting to 1 by default which means there should be at least |
| # 4 tasks eligible to run on gold cluster (tasks running on gold cores |
| # plus misfit tasks on silver cores) to trigger assitance from gold+. |
| echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh |
| |
| # Disable Core control on silver |
| echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable |
| |
| # Setting b.L scheduler parameters |
| echo 95 95 > /proc/sys/kernel/sched_upmigrate |
| echo 85 85 > /proc/sys/kernel/sched_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 85 > /proc/sys/kernel/sched_group_downmigrate |
| echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks |
| echo 400000000 > /proc/sys/kernel/sched_coloc_downmigrate_ns |
| |
| # cpuset parameters |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| |
| # Turn off scheduler boost at the end |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # configure governor settings for silver cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us |
| if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then |
| echo 1248000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| else |
| echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq |
| fi |
| echo 691200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl |
| |
| # configure input boost settings |
| echo "0:1324800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq |
| echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms |
| |
| # configure governor settings for gold cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us |
| echo 1574400 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl |
| |
| # configure governor settings for gold+ cluster |
| echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us |
| echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us |
| if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then |
| echo 1632000 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq |
| else |
| echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq |
| fi |
| echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl |
| |
| # Enable bus-dcvs |
| for device in /sys/devices/platform/soc |
| do |
| for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo "4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 50 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 30 > $cpubw/bw_hwmon/down_thres |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| echo 14236 > $cpubw/max_freq |
| echo 40 > $cpubw/polling_interval |
| done |
| |
| for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw |
| do |
| echo "bw_hwmon" > $llccbw/governor |
| if [ ${ddr_type:4:2} == $ddr_type4 ]; then |
| echo "1720 2086 2929 3879 5161 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones |
| elif [ ${ddr_type:4:2} == $ddr_type5 ]; then |
| echo "1720 2086 2929 3879 5931 6881 7980 10437" > $llccbw/bw_hwmon/mbps_zones |
| fi |
| echo 4 > $llccbw/bw_hwmon/sample_ms |
| echo 80 > $llccbw/bw_hwmon/io_percent |
| echo 20 > $llccbw/bw_hwmon/hist_memory |
| echo 10 > $llccbw/bw_hwmon/hyst_length |
| echo 30 > $llccbw/bw_hwmon/down_thres |
| echo 0 > $llccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $llccbw/bw_hwmon/up_scale |
| echo 1600 > $llccbw/bw_hwmon/idle_mbps |
| echo 6881 > $llccbw/max_freq |
| echo 40 > $llccbw/polling_interval |
| done |
| |
| for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npubw/governor |
| if [ ${ddr_type:4:2} == $ddr_type4 ]; then |
| echo "1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones |
| elif [ ${ddr_type:4:2} == $ddr_type5 ]; then |
| echo "1720 2086 2929 3879 5931 6881 7980 10437" > $npubw/bw_hwmon/mbps_zones |
| fi |
| echo 4 > $npubw/bw_hwmon/sample_ms |
| echo 160 > $npubw/bw_hwmon/io_percent |
| echo 20 > $npubw/bw_hwmon/hist_memory |
| echo 10 > $npubw/bw_hwmon/hyst_length |
| echo 30 > $npubw/bw_hwmon/down_thres |
| echo 0 > $npubw/bw_hwmon/guard_band_mbps |
| echo 250 > $npubw/bw_hwmon/up_scale |
| echo 1600 > $npubw/bw_hwmon/idle_mbps |
| echo 40 > $npubw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| |
| for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw |
| do |
| echo 1 > /sys/devices/virtual/npu/msm_npu/pwr |
| echo "bw_hwmon" > $npullccbw/governor |
| echo "4577 7110 9155 12298 14236 15258" > $npullccbw/bw_hwmon/mbps_zones |
| echo 4 > $npullccbw/bw_hwmon/sample_ms |
| echo 160 > $npullccbw/bw_hwmon/io_percent |
| echo 20 > $npullccbw/bw_hwmon/hist_memory |
| echo 10 > $npullccbw/bw_hwmon/hyst_length |
| echo 30 > $npullccbw/bw_hwmon/down_thres |
| echo 0 > $npullccbw/bw_hwmon/guard_band_mbps |
| echo 250 > $npullccbw/bw_hwmon/up_scale |
| echo 1600 > $npullccbw/bw_hwmon/idle_mbps |
| echo 40 > $npullccbw/polling_interval |
| echo 0 > /sys/devices/virtual/npu/msm_npu/pwr |
| done |
| done |
| # memlat specific settings are moved to seperate file under |
| # device/target specific folder |
| setprop vendor.dcvs.prop 0 |
| setprop vendor.dcvs.prop 1 |
| echo N > /sys/module/lpm_levels/parameters/sleep_disabled |
| configure_memory_parameters |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8998" | "apq8098_latv") |
| |
| echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus |
| echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres |
| echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres |
| echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms |
| echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster |
| echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres |
| |
| # Setting b.L scheduler parameters |
| echo 1 > /proc/sys/kernel/sched_migration_fixup |
| echo 95 > /proc/sys/kernel/sched_upmigrate |
| echo 90 > /proc/sys/kernel/sched_downmigrate |
| echo 100 > /proc/sys/kernel/sched_group_upmigrate |
| echo 95 > /proc/sys/kernel/sched_group_downmigrate |
| echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us |
| echo 400000 > /proc/sys/kernel/sched_freq_inc_notify |
| echo 400000 > /proc/sys/kernel/sched_freq_dec_notify |
| echo 5 > /proc/sys/kernel/sched_spill_nr_run |
| echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill |
| echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker |
| start iop |
| |
| # disable thermal bcl hotplug to switch governor |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| |
| # online CPU0 |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| # configure governor settings for little cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif |
| echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate |
| echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy |
| echo "83 1804800:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads |
| echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time |
| echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis |
| echo 518400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif |
| # online CPU4 |
| echo 1 > /sys/devices/system/cpu/cpu4/online |
| # configure governor settings for big cluster |
| echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif |
| echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load |
| echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate |
| echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy |
| echo "83 1939200:90 2016000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads |
| echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time |
| echo 79000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis |
| echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq |
| echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif |
| |
| # re-enable thermal and BCL hotplug |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| # Enable input boost configuration |
| echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq |
| echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms |
| # Enable bus-dcvs |
| for cpubw in /sys/class/devfreq/*qcom,cpubw* |
| do |
| echo "bw_hwmon" > $cpubw/governor |
| echo 50 > $cpubw/polling_interval |
| echo 1525 > $cpubw/min_freq |
| echo "3143 5859 11863 13763" > $cpubw/bw_hwmon/mbps_zones |
| echo 4 > $cpubw/bw_hwmon/sample_ms |
| echo 34 > $cpubw/bw_hwmon/io_percent |
| echo 20 > $cpubw/bw_hwmon/hist_memory |
| echo 10 > $cpubw/bw_hwmon/hyst_length |
| echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps |
| echo 34 > $cpubw/bw_hwmon/low_power_io_percent |
| echo 20 > $cpubw/bw_hwmon/low_power_delay |
| echo 0 > $cpubw/bw_hwmon/guard_band_mbps |
| echo 250 > $cpubw/bw_hwmon/up_scale |
| echo 1600 > $cpubw/bw_hwmon/idle_mbps |
| done |
| |
| for memlat in /sys/class/devfreq/*qcom,memlat-cpu* |
| do |
| echo "mem_latency" > $memlat/governor |
| echo 10 > $memlat/polling_interval |
| echo 400 > $memlat/mem_latency/ratio_ceil |
| done |
| echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| if [ -f /sys/devices/soc0/hw_platform ]; then |
| hw_platform=`cat /sys/devices/soc0/hw_platform` |
| else |
| hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_version ]; then |
| platform_version=`cat /sys/devices/soc0/platform_version` |
| platform_major_version=$((10#${platform_version}>>16)) |
| fi |
| |
| if [ -f /sys/devices/soc0/platform_subtype_id ]; then |
| platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id` |
| fi |
| |
| case "$soc_id" in |
| "292") #msm8998 apq8098_latv |
| # Start Host based Touch processing |
| case "$hw_platform" in |
| "QRD") |
| case "$platform_subtype_id" in |
| "0") |
| start_hbtp |
| ;; |
| "16") |
| if [ $platform_major_version -lt 6 ]; then |
| start_hbtp |
| fi |
| ;; |
| esac |
| |
| ;; |
| esac |
| ;; |
| esac |
| |
| echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled |
| echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled |
| echo N > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| echo 0-3 > /dev/cpuset/background/cpus |
| echo 0-3 > /dev/cpuset/system-background/cpus |
| echo 0 > /proc/sys/kernel/sched_boost |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8909") |
| |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| |
| # HMP scheduler settings for 8909 similiar to 8917 |
| echo 3 > /proc/sys/kernel/sched_window_stats_policy |
| echo 3 > /proc/sys/kernel/sched_ravg_hist_size |
| |
| echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread |
| |
| echo 20 > /proc/sys/kernel/sched_small_task |
| echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load |
| echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load |
| |
| echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run |
| echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run |
| |
| echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle |
| echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle |
| |
| # Apply governor settings for 8909 |
| |
| # disable thermal core_control to update scaling_min_freq |
| echo 0 > /sys/module/msm_thermal/core_control/enabled |
| echo 1 > /sys/devices/system/cpu/cpu0/online |
| echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
| echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq |
| # enable thermal core_control now |
| echo 1 > /sys/module/msm_thermal/core_control/enabled |
| |
| echo "29000 1094400:49000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay |
| echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load |
| echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate |
| echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq |
| echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy |
| echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads |
| echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time |
| echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor |
| |
| # Bring up all cores online |
| echo 1 > /sys/devices/system/cpu/cpu1/online |
| echo 1 > /sys/devices/system/cpu/cpu2/online |
| echo 1 > /sys/devices/system/cpu/cpu3/online |
| echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled |
| |
| for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor |
| do |
| echo "bw_hwmon" > $devfreq_gov |
| for cpu_bimc_bw_step in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/bw_step |
| do |
| echo 60 > $cpu_bimc_bw_step |
| done |
| for cpu_guard_band_mbps in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps |
| do |
| echo 30 > $cpu_guard_band_mbps |
| done |
| done |
| |
| for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent |
| do |
| echo 40 > $gpu_bimc_io_percent |
| done |
| for gpu_bimc_bw_step in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/bw_step |
| do |
| echo 60 > $gpu_bimc_bw_step |
| done |
| for gpu_bimc_guard_band_mbps in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/guard_band_mbps |
| do |
| echo 30 > $gpu_bimc_guard_band_mbps |
| done |
| |
| # Set Memory parameters |
| configure_memory_parameters |
| restorecon -R /sys/devices/system/cpu |
| ;; |
| esac |
| |
| case "$target" in |
| "msm7627_ffa" | "msm7627_surf" | "msm7627_6x") |
| echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| ;; |
| esac |
| |
| case "$target" in |
| "qsd8250_surf" | "qsd8250_ffa" | "qsd8650a_st1x") |
| echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| ;; |
| esac |
| |
| case "$target" in |
| "qsd8650a_st1x") |
| mount -t debugfs none /sys/kernel/debug |
| ;; |
| esac |
| |
| chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor |
| chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy |
| |
| emmc_boot=`getprop vendor.boot.emmc` |
| case "$emmc_boot" |
| in "true") |
| chown -h system /sys/devices/platform/rs300000a7.65536/force_sync |
| chown -h system /sys/devices/platform/rs300000a7.65536/sync_sts |
| chown -h system /sys/devices/platform/rs300100a7.65536/force_sync |
| chown -h system /sys/devices/platform/rs300100a7.65536/sync_sts |
| ;; |
| esac |
| |
| case "$target" in |
| "msm8960" | "msm8660" | "msm7630_surf") |
| echo 10 > /sys/devices/platform/msm_sdcc.3/idle_timeout |
| ;; |
| "msm7627a") |
| echo 10 > /sys/devices/platform/msm_sdcc.1/idle_timeout |
| ;; |
| esac |
| |
| # Post-setup services |
| case "$target" in |
| "msm8660" | "msm8960" | "msm8226" | "msm8610" | "mpq8092" ) |
| start mpdecision |
| ;; |
| "msm8974") |
| start mpdecision |
| echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb |
| ;; |
| "msm8909" | "msm8916" | "msm8937" | "msm8952" | "msm8953" | "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" | "bengal" | "sdmshrike") |
| setprop vendor.post_boot.parsed 1 |
| ;; |
| "apq8084") |
| rm /data/system/perfd/default_values |
| start mpdecision |
| echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb |
| echo 512 > /sys/block/sda/bdi/read_ahead_kb |
| echo 512 > /sys/block/sdb/bdi/read_ahead_kb |
| echo 512 > /sys/block/sdc/bdi/read_ahead_kb |
| echo 512 > /sys/block/sdd/bdi/read_ahead_kb |
| echo 512 > /sys/block/sde/bdi/read_ahead_kb |
| echo 512 > /sys/block/sdf/bdi/read_ahead_kb |
| echo 512 > /sys/block/sdg/bdi/read_ahead_kb |
| echo 512 > /sys/block/sdh/bdi/read_ahead_kb |
| ;; |
| "msm7627a") |
| if [ -f /sys/devices/soc0/soc_id ]; then |
| soc_id=`cat /sys/devices/soc0/soc_id` |
| else |
| soc_id=`cat /sys/devices/system/soc/soc0/id` |
| fi |
| case "$soc_id" in |
| "127" | "128" | "129") |
| start mpdecision |
| ;; |
| esac |
| ;; |
| esac |
| |
| # Enable Power modes and set the CPU Freq Sampling rates |
| case "$target" in |
| "msm7627a") |
| start qosmgrd |
| echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/idle_enabled |
| echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/suspend_enabled |
| echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/suspend_enabled |
| #SuspendPC: |
| echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/suspend_enabled |
| #IdlePC: |
| echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/idle_enabled |
| echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate |
| ;; |
| esac |
| |
| # Change adj level and min_free_kbytes setting for lowmemory killer to kick in |
| case "$target" in |
| "msm7627a") |
| echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj |
| echo 5120 > /proc/sys/vm/min_free_kbytes |
| ;; |
| esac |
| |
| # Install AdrenoTest.apk if not already installed |
| if [ -f /data/prebuilt/AdrenoTest.apk ]; then |
| if [ ! -d /data/data/com.qualcomm.adrenotest ]; then |
| pm install /data/prebuilt/AdrenoTest.apk |
| fi |
| fi |
| |
| # Install SWE_Browser.apk if not already installed |
| if [ -f /data/prebuilt/SWE_AndroidBrowser.apk ]; then |
| if [ ! -d /data/data/com.android.swe.browser ]; then |
| pm install /data/prebuilt/SWE_AndroidBrowser.apk |
| fi |
| fi |
| |
| # Change adj level and min_free_kbytes setting for lowmemory killer to kick in |
| case "$target" in |
| "msm8660") |
| start qosmgrd |
| echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj |
| echo 5120 > /proc/sys/vm/min_free_kbytes |
| ;; |
| esac |
| # Let kernel know our image version/variant/crm_version |
| if [ -f /sys/devices/soc0/select_image ]; then |
| image_version="10:" |
| image_version+=`getprop ro.build.id` |
| image_version+=":" |
| image_version+=`getprop ro.build.version.incremental` |
| image_variant=`getprop ro.product.name` |
| image_variant+="-" |
| image_variant+=`getprop ro.build.type` |
| oem_version=`getprop ro.build.version.codename` |
| echo 10 > /sys/devices/soc0/select_image |
| echo $image_version > /sys/devices/soc0/image_version |
| echo $image_variant > /sys/devices/soc0/image_variant |
| echo $oem_version > /sys/devices/soc0/image_crm_version |
| fi |
| |
| # Change console log level as per console config property |
| console_config=`getprop persist.vendor.console.silent.config` |
| case "$console_config" in |
| "1") |
| echo "Enable console config to $console_config" |
| echo 0 > /proc/sys/kernel/printk |
| ;; |
| *) |
| echo "Enable console config to $console_config" |
| ;; |
| esac |
| |
| # Parse misc partition path and set property |
| misc_link=$(ls -l /dev/block/bootdevice/by-name/misc) |
| real_path=${misc_link##*>} |
| setprop persist.vendor.mmi.misc_dev_path $real_path |