aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwzedlare <vedatak01@gmail.com>2017-04-14 09:15:19 +0000
committerKaan Kulahli <kaankulahli2@gmail.com>2017-04-14 17:50:18 +0000
commit17810810196ea7107def591fafd621c5734581fc (patch)
tree3710baa727b1721888ba0ed9773214f078beef08
parent75bfa467efcde6e9c95957b6d6caccec9c2b0af1 (diff)
shamrock: governor: performance > interactive
Change-Id: If0b1c76d22b16ab4db9e6781ba52b7008dcef658
-rw-r--r--device.mk2
-rw-r--r--rootdir/Android.mk15
-rw-r--r--rootdir/etc/init.qcom.post_boot.sh1664
-rw-r--r--rootdir/init.qcom.power.rc166
4 files changed, 175 insertions, 1672 deletions
diff --git a/device.mk b/device.mk
index 59fe862..41582b8 100644
--- a/device.mk
+++ b/device.mk
@@ -114,8 +114,8 @@ PRODUCT_PACKAGES += \
init.qcom.rc \
init.qcom.sh \
init.qcom.bt.sh \
+ init.qcom.power.rc \
init.qcom.usb.rc \
- init.qcom.post_boot.rc \
ueventd.qcom.rc
# IPv6
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index 0620836..76bfdbd 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -27,6 +27,14 @@ LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
+LOCAL_MODULE := init.qcom.power.rc
+LOCAL_MODULE_TAGS := optional eng
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := init.qcom.power.rc
+LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.usb.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
@@ -50,10 +58,3 @@ LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.bt.sh
include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := init.qcom.post_boot.sh
-LOCAL_MODULE_TAGS := optional eng
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := etc/init.qcom.post_boot.sh
-include $(BUILD_PREBUILT)
diff --git a/rootdir/etc/init.qcom.post_boot.sh b/rootdir/etc/init.qcom.post_boot.sh
deleted file mode 100644
index d87e359..0000000
--- a/rootdir/etc/init.qcom.post_boot.sh
+++ /dev/null
@@ -1,1664 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2012-2013, 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.
-#
-
-target=`getprop ro.board.platform`
-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
-
-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
- setprop ro.qualcomm.perf.cores_online 2
- ;;
- *)
- 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" | "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
-
- #Enable adaptive LMK and set vmpressure_file_min
- ProductName=`getprop ro.product.name`
- if [ "$ProductName" == "msm8916_32" ] || [ "$ProductName" == "msm8916_32_LMT" ]; then
- echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
- echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
- elif [ "$ProductName" == "msm8916_64" ] || [ "$ProductName" == "msm8916_64_LMT" ]; then
- echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
- echo 81250 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
- 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 > /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
-
- # 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
-
- insmod /system/lib/modules/core_ctl.ko
- echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
- echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
- echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
- echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
-
- ;;
- 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
- 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
-
- 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 "25000 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
-
- # Enable core control
- insmod /system/lib/modules/core_ctl.ko
- echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_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
-
- 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 > /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
-
- 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
- echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
-
- case "$revision" in
- "3.0")
- # Enable dynamic clock gating
- echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
- ;;
- esac
- fi
- ;;
- esac
- ;;
-esac
-
-case "$target" in
- "msm8952")
-
- #Enable adaptive LMK and set vmpressure_file_min
- ProductName=`getprop ro.product.name`
- if [ "$ProductName" == "msm8952_32" ] || [ "$ProductName" == "shamrock" ] || [ "$ProductName" == "msm8952_32_LMT" ]; then
- echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
- echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
- elif [ "$ProductName" == "msm8952_64" ] || [ "$ProductName" == "msm8952_64_LMT" ]; then
- echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
- echo 81250 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
- MemTotalStr=`cat /proc/meminfo | grep MemTotal`
- MemTotal=${MemTotalStr:16:8}
- if [ $MemTotal -le 2097152 ]; then
- chmod 660 /sys/module/lowmemorykiller/parameters/minfree
- echo "14746,18432,22118,25805,40000,55000" > /sys/module/lowmemorykiller/parameters/minfree
- fi
- fi
-
- 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
- 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
- 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
- ;;
- *)
- 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 "691200:60 806400: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" == "shamrock" ] || [ "$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 Low power modes
- echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
-
- # 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
- #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
- ;;
- 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
- setprop ro.qualcomm.perf.cores_online 2
- 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
- "msm8994")
- 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 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
- 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 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
- echo "20000 750000:40000 800000:20000" > /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 768000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
- echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
- echo "85 780000:90" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
- echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
- echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_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 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
- echo "20000 750000:40000 800000:20000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
- echo 99 > /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 "85 780000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
- echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
- echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
- 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 -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
- # 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
- /system/bin/energy-awareness
- #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
- "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
-
- #Enable adaptive LMK and set vmpressure_file_min
- echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
- echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
-
- # HMP scheduler settings for 8909 similiar to 8916
- echo 3 > /proc/sys/kernel/sched_window_stats_policy
- echo 3 > /proc/sys/kernel/sched_ravg_hist_size
-
- # HMP Task packing settings for 8909 similiar to 8916
- 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
-
- # 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 "30000 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 0 > /sys/module/lpm_levels/parameters/sleep_disabled
-
- # Enable core control
- insmod /system/lib/modules/core_ctl.ko
- echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
- max_freq=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
- min_freq=800000
- echo $((min_freq*100 / max_freq)) $((min_freq*100 / max_freq)) $((66*1000000 / max_freq)) \
- $((55*1000000 / max_freq)) > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
- echo $((33*1000000 / max_freq)) > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
- echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
-
-
- # Apply governor settings for 8909
- 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
- ;;
-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 ro.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" )
- rm /data/system/perfd/default_values
- start mpdecision
- ;;
- "msm8916")
- rm /data/system/perfd/default_values
- 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
- "239" | "241" | "263" | "268" | "269" | "270" | "271")
- setprop ro.min_freq_0 960000
- setprop ro.min_freq_4 800000
- ;;
- "206" | "247" | "248" | "249" | "250" | "233" | "240" | "242")
- setprop ro.min_freq_0 800000
- ;;
- esac
- #start perfd after setprop
- start perfd # start perfd on 8916, 8939 and 8929
- ;;
- "msm8909")
- rm /data/system/perfd/default_values
- start perfd
- ;;
- "msm8952")
- rm /data/system/perfd/default_values
- start perfd
- ;;
- "msm8974")
- start mpdecision
- echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
- ;;
- "msm8994")
- rm /data/system/default_values
- setprop ro.min_freq_0 384000
- setprop ro.min_freq_4 384000
- start perfd
- ;;
- "apq8084")
- rm /data/system/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
-#Set texture_cache_size property if not defined
-if [ -z `getprop ro.hwui.texture_cache_size` ]; then
- setprop ro.hwui.texture_cache_size 40
-fi
-
-if [ -f /sys/devices/soc0/select_image ]; then
- # Let kernel know our image version/variant/crm_version
- 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
diff --git a/rootdir/init.qcom.power.rc b/rootdir/init.qcom.power.rc
new file mode 100644
index 0000000..21035b7
--- /dev/null
+++ b/rootdir/init.qcom.power.rc
@@ -0,0 +1,166 @@
+on boot
+ # add a cpuset for the camera daemon
+ # we want all the little cores for camera
+ mkdir /dev/cpuset/camera-daemon
+ chown system system /dev/cpuset/camera-daemon
+ chown system system /dev/cpuset/camera-daemon/tasks
+ chmod 0664 /dev/cpuset/camera-daemon/tasks
+
+ # update foreground cpuset now that processors are up
+ # reserve CPU 4 for the top app
+ write /dev/cpuset/foreground/cpus 0-3,5-7
+ write /dev/cpuset/foreground/boost/cpus 0-3
+ write /dev/cpuset/background/cpus 4
+ write /dev/cpuset/system-background/cpus 5-7
+ write /dev/cpuset/top-app/cpus 0-7
+ write /dev/cpuset/camera-daemon/cpus 4-7
+
+on enable-low-power
+ # HMP scheduler settings
+ write /proc/sys/kernel/sched_window_stats_policy 3
+ write /proc/sys/kernel/sched_ravg_hist_size 3
+ write /proc/sys/kernel/sched_ravg_window 20000000
+
+ # HMP Task packing settings
+ write /proc/sys/kernel/sched_small_task 20
+ write /sys/devices/system/cpu/cpu0/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu1/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu2/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu3/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu4/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu5/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu6/sched_mostly_idle_load 30
+ write /sys/devices/system/cpu/cpu7/sched_mostly_idle_load 30
+
+ write /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run 3
+ write /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run 3
+
+ write /sys/devices/system/cpu/cpu0/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu1/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu2/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu3/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu4/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu5/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu6/sched_prefer_idle 0
+ write /sys/devices/system/cpu/cpu7/sched_prefer_idle 0
+
+ write /sys/class/devfreq/qcom,mincpubw.53/governor "cpufreq"
+ write /sys/class/devfreq/qcom,cpubw.52/governor "bw_hwmon"
+ write /sys/class/devfreq/qcom,cpubw.52/bw_hwmon/io_percent 20
+ write /sys/class/devfreq/qcom,cpubw.52/bw_hwmon/guard_band_mbps 30
+ write /sys/class/devfreq/qcom,gpubw.39/governor "bw_hwmon"
+ write /sys/class/devfreq/qcom,gpubw.39/bw_hwmon/io_percent 40
+
+ # disable thermal & BCL core_control to update interactive gov settings
+ write /sys/module/msm_thermal/core_control/enabled 0
+ write /sys/devices/soc.0/qcom,bcl.58/mode "disable"
+ write /sys/devices/soc.0/qcom,bcl.58/hotplug_mask 0
+ write /sys/devices/soc.0/qcom,bcl.58/hotplug_soc_mask 0
+ write /sys/devices/soc.0/qcom,bcl.58/mode "enable"
+
+ # enable governor for perf cluster
+ write /sys/devices/system/cpu/cpu0/online 1
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "interactive"
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay "19000 1113600:39000"
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 85
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 20000
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 1113600
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 0
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads "1 960000:85 1113600:90 1344000:80"
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 40000
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor 40000
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 960000
+
+ # enable governor for power cluster
+ write /sys/devices/system/cpu/cpu4/online 1
+ write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "interactive"
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay 39000
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load 90
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate 20000
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq 806400
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy 0
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads "1 800000:90"
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time 40000
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor 40000
+ write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 800000
+
+ # re-enable thermal & BCL core_control now
+ write /sys/module/msm_thermal/core_control/enabled 1
+ write /sys/devices/soc.0/qcom,bcl.58/mode "disable"
+ write /sys/devices/soc.0/qcom,bcl.58/hotplug_mask 12
+ write /sys/devices/soc.0/qcom,bcl.58/hotplug_soc_mask 15
+ write /sys/devices/soc.0/qcom,bcl.58/mode "enable"
+
+ # Bring up all cores online
+ write /sys/devices/system/cpu/cpu1/online 1
+ write /sys/devices/system/cpu/cpu2/online 1
+ write /sys/devices/system/cpu/cpu3/online 1
+ write /sys/devices/system/cpu/cpu4/online 1
+ write /sys/devices/system/cpu/cpu5/online 1
+ write /sys/devices/system/cpu/cpu6/online 1
+ write /sys/devices/system/cpu/cpu7/online 1
+
+ # Enable LPM Prediction
+ write /sys/module/lpm_levels/parameters/lpm_prediction 1
+
+ # Enable Low power modes
+ write /sys/module/lpm_levels/parameters/sleep_disabled 0
+
+ # HMP scheduler (big.Little cluster related) settings
+ write /proc/sys/kernel/sched_upmigrate 93
+ write /proc/sys/kernel/sched_downmigrate 83
+
+ # Enable sched guided freq control
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load 1
+ write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load 1
+ write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif 1
+ write /proc/sys/kernel/sched_freq_inc_notify 50000
+ write /proc/sys/kernel/sched_freq_dec_notify 50000
+
+ # Input boost config
+ write /sys/module/cpu_boost/parameters/input_boost_freq 960000
+ write /sys/module/cpu_boost/parameters/input_boost_ms 40
+
+ # Enable core control
+ write /sys/devices/system/cpu/cpu0/core_ctl/min_cpus 0
+ write /sys/devices/system/cpu/cpu0/core_ctl/max_cpus 4
+ write /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres 72
+ write /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres 28
+ write /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms 100
+ write /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster 1
+ write /sys/devices/system/cpu/cpu0/core_ctl/task_thres 4
+
+ # RPS
+ write /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus "f0"
+
+ # Enable dynamic clock gating
+ write /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating 1
+ # Enable timer migration to little cluster
+ write /proc/sys/kernel/power_aware_timer_migration 1
+
+ # Process reclaim
+ write /sys/module/process_reclaim/parameters/enable_process_reclaim 1
+ write /sys/module/process_reclaim/parameters/pressure_min 10
+ write /sys/module/process_reclaim/parameters/per_swap_size 1024
+
+ write /sys/module/process_reclaim/parameters/pressure_max 70
+ write /sys/module/process_reclaim/parameters/swap_opt_eff 30
+
+ rm /data/system/perfd/default_values
+ start perfd
+
+on class_start:late_start
+ trigger enable-low-power
+
+on property:init.svc.recovery=running
+ trigger enable-low-power
+
+on property:dev.bootcomplete=1
+ setprop sys.io.scheduler "bfq"