diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 528758e4..2e59d4e5 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -19,6 +19,22 @@ LOCAL_SRC_FILES := bin/init.qcom.early_boot.sh LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) include $(BUILD_PREBUILT) +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.sensors.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qcom.sensors.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := init.qti.dcvs.sh +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := bin/init.qti.dcvs.sh +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) +include $(BUILD_PREBUILT) + include $(CLEAR_VARS) LOCAL_MODULE := init.qcom.rc LOCAL_MODULE_TAGS := optional diff --git a/rootdir/bin/init.qcom.early_boot.sh b/rootdir/bin/init.qcom.early_boot.sh index f5a29929..0bad775c 100644 --- a/rootdir/bin/init.qcom.early_boot.sh +++ b/rootdir/bin/init.qcom.early_boot.sh @@ -1,6 +1,6 @@ #!/vendor/bin/sh -# Copyright (c) 2012-2013,2016,2018,2019 The Linux Foundation. All rights reserved. +# Copyright (c) 2012-2013,2016,2018-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: @@ -121,6 +121,9 @@ case "$target" in setprop vendor.media.target.version 2 fi ;; + 355|369|377|384) + setprop vendor.chre.enabled 0 + ;; *) esac ;; @@ -259,10 +262,13 @@ case "$target" in log -t BOOT -p i "SDM429 early_boot prop set for: HwID '$soc_hwid'" fi ;; - 303|307|308|309|320) + 303|307|308|309|320|386|436) # Vulkan is not supported for 8917 variants setprop vendor.opengles.version 196608 setprop persist.graphics.vulkan.disable true + setprop vendor.gralloc.disable_ahardware_buffer 1 + # Disable adsprpcd_sensorspd daemon + setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1 ;; *) setprop vendor.opengles.version 196608 @@ -308,6 +314,7 @@ case "$target" in "kona") case "$soc_hwplatform" in *) + setprop vendor.media.target_variant "_kona" if [ $fb_width -le 1600 ]; then setprop vendor.display.lcd_density 560 else @@ -317,18 +324,64 @@ case "$target" in esac ;; "lito") - case "$soc_hwplatform" in - *) + case "$soc_hwid" in + 400|440) sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null if [ $sku_ver -eq 1 ]; then setprop vendor.media.target.version 1 fi ;; + 434|459) + sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null + setprop vendor.media.target.version 2 + if [ $sku_ver -eq 1 ]; then + setprop vendor.media.target.version 3 + fi + ;; + 476) + # Fraser soc_id 476 + setprop vendor.display.enable_qsync_idle 1 + ;; + esac + ;; + "bengal") + case "$soc_hwid" in + 441|473) + # 441 is for scuba and 473 for scuba iot qcm + setprop vendor.fastrpc.disable.cdsprpcd.daemon 1 + setprop vendor.media.target.version 2 + setprop vendor.gralloc.disable_ubwc 1 + setprop vendor.display.enhance_idle_time 1 + setprop vendor.netflix.bsp_rev "" + # 196609 is decimal for 0x30001 to report version 3.1 + setprop vendor.opengles.version 196609 + sku_ver=`cat /sys/devices/platform/soc/5a00000.qcom,vidc1/sku_version` 2> /dev/null + if [ $sku_ver -eq 1 ]; then + setprop vendor.media.target.version 3 + fi + ;; + 471|474) + # 471 is for scuba APQ and 474 for scuba iot qcs + setprop vendor.fastrpc.disable.cdsprpcd.daemon 1 + setprop vendor.gralloc.disable_ubwc 1 + setprop vendor.display.enhance_idle_time 1 + setprop vendor.netflix.bsp_rev "" + ;; + *) + # default case is for bengal + setprop vendor.netflix.bsp_rev "Q6115-31409-1" + ;; esac ;; "sdm710" | "msmpeafowl") case "$soc_hwplatform" in *) + if [ $fb_width -le 1600 ]; then + setprop vendor.display.lcd_density 560 + else + setprop vendor.display.lcd_density 640 + fi + sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null if [ $sku_ver -eq 1 ]; then setprop vendor.media.target.version 1 @@ -351,12 +404,41 @@ case "$target" in #Set property to differentiate SDM660, sdm636 & SDM455 #SOC ID for SDM455 is 385 "sdm660" | "sdm636") - case "$soc_hwid" in - 385) - setprop vendor.media.target.version 1 + case "$soc_hwplatform" in + *) + if [ $fb_width -le 1600 ]; then + setprop vendor.display.lcd_density 560 + else + setprop vendor.display.lcd_density 640 + fi + + if [ $soc_hwid -eq 385 ]; then + setprop vendor.media.target.version 1 + fi + ;; esac ;; + "holi") + setprop vendor.media.target_variant "_holi" + ;; esac +case "$target" in + "msm8937") + case "$soc_hwid" in + 386|354|353|303) + # enable qrtr-ns service for kernel 4.14 or above + KernelVersionStr=`cat /proc/sys/kernel/osrelease` + KernelVersionS=${KernelVersionStr:2:2} + KernelVersionA=${KernelVersionStr:0:1} + KernelVersionB=${KernelVersionS%.*} + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then + setprop init.svc.vendor.qrtrns.enable 1 + fi + ;; + esac + ;; + esac baseband=`getprop ro.baseband` #enable atfwd daemon all targets except sda, apq, qcs @@ -398,8 +480,6 @@ esac case "$product" in "sdmshrike_au") setprop vendor.display.lcd_density 160 - 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 ;; *) ;; diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh index 1edeeec5..23d467ee 100644 --- a/rootdir/bin/init.qcom.post_boot.sh +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -1,6 +1,6 @@ #! /vendor/bin/sh -# Copyright (c) 2012-2013, 2016-2019, The Linux Foundation. All rights reserved. +# 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: @@ -29,47 +29,283 @@ function 8953_sched_dcvs_eas() { - #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/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 + 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 85 > $cpubw/bw_hwmon/io_percent + echo 0 > $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 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() { - #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/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 + 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 85 > $cpubw/bw_hwmon/io_percent + echo 0 > $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() { - # 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/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/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 + 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 85 > $cpubw/bw_hwmon/io_percent + echo 0 > $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() { @@ -96,13 +332,18 @@ if [ $feature_id == 6 ]; then 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 {class:ddr, res:fixed, val: 1016} > /sys/kernel/debug/aop_send_message + 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 @@ -121,14 +362,19 @@ elif [ $feature_id == 5 ]; then 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 {class:ddr, res:fixed, val: 1333} > /sys/kernel/debug/aop_send_message + echo 1333 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq setprop vendor.sku_identified 1 -elif [ $feature_id == 4 || $feature_id == 3 ]; then + 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 @@ -146,15 +392,20 @@ elif [ $feature_id == 4 || $feature_id == 3 ]; then 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 {class:ddr, res:fixed, val: 1555} > /sys/kernel/debug/aop_send_message + 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 "unknown feature_id value" $feature_id + 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 @@ -171,13 +422,18 @@ else 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 {class:ddr, res:fixed, val: 1555} > /sys/kernel/debug/aop_send_message + 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 } @@ -329,8 +585,223 @@ function 8937_sched_dcvs_hmp() 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} @@ -340,13 +811,21 @@ function configure_zram_parameters() { # 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 Non-Go devices, size = 50% of RAM size. Limit the size to 4GB. + # 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. - RamSizeGB=`echo "($MemTotal / 1048576 ) + 1" | bc` - zRamSizeBytes=`echo "$RamSizeGB * 1024 * 1024 * 1024 / 2" | bc` - if [ $zRamSizeBytes -gt 4294967296 ]; then - zRamSizeBytes=4294967296 + 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 @@ -357,28 +836,43 @@ function configure_zram_parameters() { if [ -f /sys/block/zram0/use_dedup ]; then echo 1 > /sys/block/zram0/use_dedup fi - if [ $MemTotal -le 524288 ]; then - echo 402653184 > /sys/block/zram0/disksize - elif [ $MemTotal -le 1048576 ]; then - echo 805306368 > /sys/block/zram0/disksize - else - echo $zRamSizeBytes > /sys/block/zram0/disksize + 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} - # Set 128 for all targets + 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/mmcblk0/queue/read_ahead_kb echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb - echo 128 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb - echo 128 > /sys/block/dm-0/queue/read_ahead_kb - echo 128 > /sys/block/dm-1/queue/read_ahead_kb - echo 128 > /sys/block/dm-2/queue/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() { @@ -442,11 +936,9 @@ if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] || [ "$Produc echo 100 > /proc/sys/vm/swappiness else arch_type=`uname -m` - MemTotalStr=`cat /proc/meminfo | grep MemTotal` - MemTotal=${MemTotalStr:16:8} # Set parameters for 32-bit Go targets. - if [ $MemTotal -le 1048576 ] && [ "$low_ram" == "true" ]; then + 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 @@ -497,37 +989,50 @@ else # Enable adaptive LMK for all targets & # use Google default LMK series for all 64-bit targets >=2GB. - echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk + 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 - # Set PPR parameters - 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 [[ "$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 0 > /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 + 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. @@ -539,6 +1044,8 @@ else # 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 @@ -1681,6 +2188,13 @@ case "$target" in # 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 @@ -1720,7 +2234,6 @@ case "$target" in case "$soc_id" in "293" | "304" | "338" | "351") - #init task load, restrict wakeups to preferred cluster echo 15 > /proc/sys/kernel/sched_init_task_load @@ -1805,16 +2318,12 @@ case "$target" in done #if the kernel version >=4.9,use the schedutil governor - KernelVersionStr=`cat /proc/sys/kernel/osrelease` - KernelVersionS=${KernelVersionStr:2:2} - KernelVersionA=${KernelVersionStr:0:1} - KernelVersionB=${KernelVersionS%.*} 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 - echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq # Bring up all cores online echo 1 > /sys/devices/system/cpu/cpu1/online @@ -1857,7 +2366,6 @@ case "$target" in esac case "$soc_id" in "349" | "350") - for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor do echo "cpufreq" > $devfreq_gov @@ -1924,7 +2432,8 @@ case "$target" in # 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/rate_limit_us + 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 @@ -1937,7 +2446,8 @@ case "$target" in # 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/rate_limit_us + 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 @@ -2033,7 +2543,6 @@ case "$target" in # Socid 386 = Pukeena case "$soc_id" in "303" | "307" | "308" | "309" | "320" | "386" | "436") - # Apply Scheduler and Governor settings for 8917 / 8920 echo 20000000 > /proc/sys/kernel/sched_ravg_window @@ -2044,42 +2553,41 @@ case "$target" in # core_ctl is not needed for 8917. Disable it. disable_core_ctl - 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 + if [ $KernelVersionA -le 4 ] && [ $KernelVersionB -le 9 ]; then + for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor do - echo 20 > $cpu_io_percent + echo "cpufreq" > $devfreq_gov 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 + 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 - KernelVersionStr=`cat /proc/sys/kernel/osrelease` - KernelVersionS=${KernelVersionStr:2:2} - KernelVersionA=${KernelVersionStr:0:1} - KernelVersionB=${KernelVersionS%.*} 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 - echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + # re-enable thermal core_control now echo 1 > /sys/module/msm_thermal/core_control/enabled @@ -2111,7 +2619,6 @@ case "$target" in case "$soc_id" in "294" | "295" | "313" ) - # Apply Scheduler and Governor settings for 8937/8940 # HMP scheduler settings @@ -2148,17 +2655,13 @@ case "$target" in # disable thermal core_control to update interactive gov and core_ctl settings echo 0 > /sys/module/msm_thermal/core_control/enabled - KernelVersionStr=`cat /proc/sys/kernel/osrelease` - KernelVersionS=${KernelVersionStr:2:2} - KernelVersionA=${KernelVersionStr:0:1} - KernelVersionB=${KernelVersionS%.*} 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 - echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq - echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq # 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 @@ -2206,53 +2709,105 @@ case "$target" in case "$soc_id" in "354" | "364" | "353" | "363" ) - # Apply settings for sdm429/sda429/sdm439/sda439 + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then - for cpubw in /sys/class/devfreq/*qcom,mincpubw* - do - echo "cpufreq" > $cpubw/governor - done + 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 85 > $cpubw/bw_hwmon/io_percent + echo 0 > $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 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 + 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 - # configure schedutil governor settings - # 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/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 + 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 - - ## 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/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 - # 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/cpu6/sched_load_boost @@ -2296,12 +2851,34 @@ case "$target" in # Apply settings for sdm429/sda429 # configure schedutil 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/cpu0/cpufreq/schedutil/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 + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + 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 @@ -2362,55 +2939,42 @@ case "$target" in 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" ) - # configure governor settings for little cluster - echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor - echo 500 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us - echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + 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 - # configure governor settings for big cluster - echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor - echo 500 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us - echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + # 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 - # 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 381 > $cpubw/min_freq - echo "381 762 1571 2086 2929 3879 5163 5931 6881" > $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 + # Report max frequency to unity tasks + echo "UnityMain,libunity.so" > /proc/sys/kernel/sched_lib_name + echo 255 > /proc/sys/kernel/sched_lib_mask_force 255 - 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 - - done + #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 @@ -2418,18 +2982,16 @@ case "$target" in # enable LPM echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled - esac - - # Start cdsprpcd only for sdm660 and disable for sdm630 and sdm636 - case "$soc_id" in - "317" | "324" | "325" | "326" ) + # Start cdsprpcd only for sdm660 and disable for sdm630 and sdm636 start vendor.cdsprpcd esac - #Apply settings for sdm630 and Tahaa case "$soc_id" in "318" | "327" | "385" ) + # 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 @@ -2785,7 +3347,6 @@ case "$target" in 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 @@ -2805,24 +3366,16 @@ case "$target" in 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 - - 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 + 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 @@ -2924,7 +3477,6 @@ case "$target" in for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw do echo "bw_hwmon" > $cpubw/governor - echo 50 > $cpubw/polling_interval 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 @@ -2934,12 +3486,12 @@ case "$target" in 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 40 > $llccbw/polling_interval 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 @@ -2949,33 +3501,14 @@ case "$target" in 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 - - #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 - - #Gold L3 ratio ceil - echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil - - #Enable cdspl3 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 - 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 @@ -3045,7 +3578,6 @@ case "$target" in for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw do echo "bw_hwmon" > $cpubw/governor - echo 50 > $cpubw/polling_interval 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 @@ -3055,12 +3587,12 @@ case "$target" in 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 40 > $llccbw/polling_interval 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 @@ -3070,13 +3602,13 @@ case "$target" in 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 40 > $npubw/polling_interval 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 @@ -3086,35 +3618,15 @@ case "$target" in 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 - - #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 - - #Gold L3 ratio ceil - echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil - - #Enable cdspl3 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 - 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 @@ -3134,350 +3646,327 @@ esac case "$target" in "lito") - # 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 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 40 > /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 + #Apply settings for lito + if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` 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 + 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 - echo "bw_hwmon" > $cpubw/governor - echo 50 > $cpubw/polling_interval - 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 - done + 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 + 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 - echo "bw_hwmon" > $llccbw/governor - echo 50 > $llccbw/polling_interval - 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 + 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 - 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 40 > $npubw/polling_interval - 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 0 > /sys/devices/virtual/npu/msm_npu/pwr - done + # cpuset parameters + echo 0-5 > /dev/cpuset/background/cpus + echo 0-5 > /dev/cpuset/system-background/cpus - 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 40 > $npullccbw/polling_interval - 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 0 > /sys/devices/virtual/npu/msm_npu/pwr - done + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost - #Enable mem_latency governor for L3, LLCC, and DDR scaling - for memlat in $device/*qcom,devfreq-l3/*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 cdspl3 governor for L3 cdsp nodes - for l3cdsp in $device/*qcom,devfreq-l3/*cdsp-l3-lat/devfreq/*cdsp-l3-lat - do - echo "cdspl3" > $l3cdsp/governor - done - - #Enable mem_latency governor for 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 - - #Gold L3 ratio ceil - for l3gold in $device/*qcom,devfreq-l3/*cpu6-cpu-l3-lat/devfreq/*cpu6-cpu-l3-lat - do - echo 4000 > $l3gold/mem_latency/ratio_ceil - done - - #Prime L3 ratio ceil - for l3prime in $device/*qcom,devfreq-l3/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat - do - echo 4000 > $l3prime/mem_latency/ratio_ceil - 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 - done - - # 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 - ;; + # Turn off sleep modes + 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 - - # Enable conservative pl - echo 1 > /proc/sys/kernel/sched_conservative_pl - - 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 50 > $cpubw/polling_interval - 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 - 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 "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 - 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 "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 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 cdspl3 governor for L3 cdsp nodes - for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat - do - echo "cdspl3" > $l3cdsp/governor - done - - #Gold L3 ratio ceil - echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil - - #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 - - done - - # 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 "bengal") @@ -3488,11 +3977,11 @@ case "$target" in fi case "$soc_id" in - "417" ) + "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 4 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + 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 @@ -3526,6 +4015,9 @@ case "$target" in 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. @@ -3576,20 +4068,10 @@ case "$target" in echo 1600 > $cpubw/bw_hwmon/idle_mbps done - 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 - 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 @@ -3598,15 +4080,205 @@ case "$target" in # Turn off scheduler boost at the end echo 0 > /proc/sys/kernel/sched_boost - # Turn off sleep modes till bring up - # sleep modes to be enabled after bring up - echo 1 > /sys/module/lpm_levels/parameters/sleep_disabled + # 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") @@ -4106,6 +4778,8 @@ case "$target" in 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 @@ -4338,7 +5012,6 @@ case "$target" in 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 @@ -4349,12 +5022,12 @@ case "$target" in 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 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 @@ -4365,13 +5038,13 @@ case "$target" in 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 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 @@ -4381,43 +5054,15 @@ case "$target" in 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 - - #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 + # 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 @@ -4430,6 +5075,21 @@ case "$target" in 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 @@ -4617,27 +5277,32 @@ case "$target" in #Setting the min supported frequencies echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq - echo 1113600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq - echo 1113600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq - echo 1113600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq - echo 1171200 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq - echo 1171200 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq - echo 1171200 > /sys/devices/system/cpu/cpu7/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 SA8185P" + 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 {class:ddr, res:fixed, val: 1804} > /sys/kernel/debug/aop_send_message - elif [ $feature_id == 1 ]; then - echo "feature_id is 1 for SA8195P" + 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 {class:ddr, res:fixed, val: 2092} > /sys/kernel/debug/aop_send_message + 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 @@ -4649,7 +5314,7 @@ 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" @@ -4699,7 +5364,7 @@ case "$target" in 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 [ `cat /sys/devices/soc0/revision` == "2.0" ]; then + 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 @@ -4722,7 +5387,7 @@ case "$target" in 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 [ `cat /sys/devices/soc0/revision` == "2.0" ]; then + 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 @@ -4735,7 +5400,6 @@ case "$target" in 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 "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 @@ -4746,12 +5410,12 @@ case "$target" in 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 40 > $llccbw/polling_interval 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 @@ -4766,13 +5430,13 @@ case "$target" in 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 - echo 40 > $npubw/polling_interval 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 @@ -4786,6 +5450,7 @@ case "$target" in 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 @@ -4793,7 +5458,6 @@ case "$target" in do echo 1 > /sys/devices/virtual/npu/msm_npu/pwr echo "bw_hwmon" > $npullccbw/governor - echo 40 > $npullccbw/polling_interval 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 @@ -4803,57 +5467,14 @@ case "$target" in 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 - #Enable mem_latency governor for L3 scaling - for memlat in $device/*qcom,devfreq-l3/*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 cdspl3 governor for L3 cdsp nodes - for l3cdsp in $device/*qcom,devfreq-l3/*cdsp-l3-lat/devfreq/*cdsp-l3-lat - do - echo "cdspl3" > $l3cdsp/governor - done - - #Enable mem_latency governor for 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 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/*qcom,devfreq-l3/*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/*qcom,devfreq-l3/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat - do - echo 20000 > $l3prime/mem_latency/ratio_ceil - done - - #Enable mem_latency governor for qoslat - for qoslat in $device/*qoslat/devfreq/*qoslat - do - echo "mem_latency" > $qoslat/governor - echo 10 > $qoslat/polling_interval - echo 50 > $qoslat/mem_latency/ratio_ceil - 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 ;; @@ -4881,6 +5502,7 @@ case "$target" in 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 @@ -5132,7 +5754,7 @@ case "$target" in start mpdecision echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb ;; - "msm8909" | "msm8916" | "msm8937" | "msm8952" | "msm8953" | "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "sdm636" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "sdmshrike" |"msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" | "bengal" ) + "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") @@ -5165,6 +5787,7 @@ 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 @@ -5202,66 +5825,11 @@ 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 - -product=`getprop ro.build.product` -case "$product" in - "msmnile_au") - #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)) - - if [ $feature_id == 0 ]; then - echo "feature_id is 0 for SA8155" - echo 1036800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq - echo 1036800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq - echo 1036800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq - echo 1036800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq - echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq - echo 1056000 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq - echo 1056000 > /sys/devices/system/cpu/cpu6/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 1785600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq - echo 1785600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq - echo 1785600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq - echo 2131200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq - echo 2131200 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq - echo 2131200 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq - echo 2419200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq - echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel - echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel - elif [ $feature_id == 1 ]; then - echo "feature_id is 1 for SA8150" - echo 1036800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq - echo 1036800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq - echo 1036800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq - echo 1036800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq - echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq - echo 1056000 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq - echo 1056000 > /sys/devices/system/cpu/cpu6/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 1785600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq - echo 1785600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq - echo 1785600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq - echo 1920000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq - echo 1920000 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq - echo 1920000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq - echo 2227200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq - echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel - echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel - else - echo "unknown feature_id value" $feature_id - fi - ;; - *) - ;; -esac - # Let kernel know our image version/variant/crm_version if [ -f /sys/devices/soc0/select_image ]; then image_version="10:" @@ -5279,25 +5847,18 @@ if [ -f /sys/devices/soc0/select_image ]; then fi # Change console log level as per console config property -# console_config=`getprop persist.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 +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 - -# set sys.use_fifo_ui prop if eas exist - available_governors=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors) - - if echo "$available_governors" | grep schedutil; then - setprop sys.use_fifo_ui 1 - fi diff --git a/rootdir/bin/init.qcom.sensors.sh b/rootdir/bin/init.qcom.sensors.sh new file mode 100644 index 00000000..62a6bf2e --- /dev/null +++ b/rootdir/bin/init.qcom.sensors.sh @@ -0,0 +1,40 @@ +#!/vendor/bin/sh +# Copyright (c) 2015,2018,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. +# + +# +# Function to start sensors for SSC enabled platforms +# +start_sensors() +{ + + chmod -h 664 /persist/sensors/sensors_settings + chown -h -R system.system /persist/sensors + start vendor.sensors.qti +} + +start_sensors diff --git a/rootdir/bin/init.qcom.sh b/rootdir/bin/init.qcom.sh index 92be43d2..e6fc38ab 100755 --- a/rootdir/bin/init.qcom.sh +++ b/rootdir/bin/init.qcom.sh @@ -35,12 +35,59 @@ else platformid=`cat /sys/devices/system/soc/soc0/id` fi +start_battery_monitor() +{ + if ls /sys/bus/spmi/devices/qpnp-bms-*/fcc_data ; then + chown -h root.system /sys/module/pm8921_bms/parameters/* + chown -h root.system /sys/module/qpnp_bms/parameters/* + chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_data + chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_temp + chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_chgcyl + chmod 0660 /sys/module/qpnp_bms/parameters/* + chmod 0660 /sys/module/pm8921_bms/parameters/* + mkdir -p /data/bms + chown -h root.system /data/bms + chmod 0770 /data/bms + start battery_monitor + fi +} + +start_charger_monitor() +{ + if ls /sys/module/qpnp_charger/parameters/charger_monitor; then + chown -h root.system /sys/module/qpnp_charger/parameters/* + chown -h root.system /sys/class/power_supply/battery/input_current_max + chown -h root.system /sys/class/power_supply/battery/input_current_trim + chown -h root.system /sys/class/power_supply/battery/input_current_settled + chown -h root.system /sys/class/power_supply/battery/voltage_min + chmod 0664 /sys/class/power_supply/battery/input_current_max + chmod 0664 /sys/class/power_supply/battery/input_current_trim + chmod 0664 /sys/class/power_supply/battery/input_current_settled + chmod 0664 /sys/class/power_supply/battery/voltage_min + chmod 0664 /sys/module/qpnp_charger/parameters/charger_monitor + start charger_monitor + fi +} + +start_vm_bms() +{ + if [ -e /dev/vm_bms ]; then + chown -h root.system /sys/class/power_supply/bms/current_now + chown -h root.system /sys/class/power_supply/bms/voltage_ocv + chmod 0664 /sys/class/power_supply/bms/current_now + chmod 0664 /sys/class/power_supply/bms/voltage_ocv + start vm_bms + fi +} + start_msm_irqbalance_8939() { if [ -f /vendor/bin/msm_irqbalance ]; then case "$platformid" in "239" | "293" | "294" | "295" | "304" | "338" | "313" | "353" | "354") start vendor.msm_irqbalance;; + "349" | "350" ) + start vendor.msm_irqbal_lb;; esac fi } @@ -102,6 +149,61 @@ case "$baseband" in esac case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + if [ -f /sys/devices/soc0/hw_platform ]; then + value=`cat /sys/devices/soc0/hw_platform` + else + value=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + case "$value" in + "Fluid") + start profiler_daemon;; + esac + ;; + "msm8660" ) + if [ -f /sys/devices/soc0/hw_platform ]; then + platformvalue=`cat /sys/devices/soc0/hw_platform` + else + platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + case "$platformvalue" in + "Fluid") + start profiler_daemon;; + esac + ;; + "msm8960") + case "$baseband" in + "msm") + start_battery_monitor;; + esac + + if [ -f /sys/devices/soc0/hw_platform ]; then + platformvalue=`cat /sys/devices/soc0/hw_platform` + else + platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform` + fi + case "$platformvalue" in + "Fluid") + start profiler_daemon;; + "Liquid") + start profiler_daemon;; + esac + ;; + "msm8974") + platformvalue=`cat /sys/devices/soc0/hw_platform` + case "$platformvalue" in + "Fluid") + start profiler_daemon;; + "Liquid") + start profiler_daemon;; + esac + case "$baseband" in + "msm") + start_battery_monitor + ;; + esac + start_charger_monitor + ;; "sdm660" | "sdm636") if [ -f /sys/devices/soc0/soc_id ]; then soc_id=`cat /sys/devices/soc0/soc_id` @@ -114,9 +216,44 @@ case "$target" in else hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform` fi + + case "$soc_id" in + "317" | "324" | "325" | "326" | "318" | "327" ) + case "$hw_platform" in + "Surf") + setprop qemu.hw.mainkeys 0 + ;; + "MTP") + setprop qemu.hw.mainkeys 0 + ;; + "RCM") + setprop qemu.hw.mainkeys 0 + ;; + "QRD") + setprop qemu.hw.mainkeys 0 + ;; + esac + ;; + esac start_msm_irqbalance660 ;; + "apq8084") + platformvalue=`cat /sys/devices/soc0/hw_platform` + case "$platformvalue" in + "Fluid") + start profiler_daemon;; + "Liquid") + start profiler_daemon;; + esac + ;; + "msm8226") + start_charger_monitor + ;; + "msm8610") + start_charger_monitor + ;; "msm8916") + start_vm_bms start_msm_irqbalance_8939 if [ -f /sys/devices/soc0/soc_id ]; then soc_id=`cat /sys/devices/soc0/soc_id` @@ -175,6 +312,9 @@ case "$target" in ;; esac ;; + "msm8909") + start_vm_bms + ;; "msmnile") start_msm_irqbalance_msmnile ;; @@ -316,7 +456,7 @@ buildvariant=`getprop ro.build.type` case "$buildvariant" in "userdebug" | "eng") #set default loglevel to KERN_INFO - echo "6 6 1 7" > /proc/sys/kernel/printk + echo "4 6 1 7" > /proc/sys/kernel/printk ;; *) #set default loglevel to KERN_WARNING diff --git a/rootdir/bin/init.qti.dcvs.sh b/rootdir/bin/init.qti.dcvs.sh new file mode 100644 index 00000000..007d9b79 --- /dev/null +++ b/rootdir/bin/init.qti.dcvs.sh @@ -0,0 +1,44 @@ +#! /vendor/bin/sh +# +# Copyright (c) 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 "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. +# + for device in /sys/devices/platform/soc + do + 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 + done diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index bacee2c3..db4996e7 100755 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -1,4 +1,4 @@ -# Copyright (c) 2009-2012, 2014-2020, The Linux Foundation. All rights reserved. +# Copyright (c) 2009-2012, 2014-2021, 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: @@ -28,18 +28,22 @@ import /vendor/etc/init/hw/init.qcom.usb.rc import /vendor/etc/init/hw/init.msm.usb.configfs.rc import /vendor/etc/init/hw/init.target.rc -import /vendor/etc/init/hw/init.qcom.factory.rc -import /vendor/etc/init/hw/init.qcom.test.rc import /vendor/etc/init/hw/init.device.rc import /vendor/etc/init/hw/init.xiaomi_parts.rc on early-init + mount tracefs tracefs /sys/kernel/tracing + chmod 0755 /sys/kernel/tracing # Change ownership of hw_recovery related nodes chown system graphics /sys/kernel/debug/dri/0/debug/dump chown system graphics /sys/kernel/debug/dri/0/debug/recovery_reg chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dbgbus chown system graphics /sys/kernel/debug/dri/0/debug/recovery_vbif_dbgbus + chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dsi_dbgbus + + # Change ownership of sysfs power control node + chown system graphics /sys/class/drm/card0/device/power/control # Change ownership of sw_sync node chown system graphics /sys/kernel/debug/sync/sw_sync @@ -49,11 +53,17 @@ on early-init chmod 0620 /dev/kmsg on init + + # Support legacy paths + symlink /sdcard /mnt/sdcard + symlink /sdcard /storage/sdcard0 + # Create cgroup mount point for memory mkdir /sys/fs/cgroup/memory/bg 0750 root system write /sys/fs/cgroup/memory/bg/memory.swappiness 140 write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1 chown root system /sys/fs/cgroup/memory/bg/tasks + write /sys/kernel/icnss/wpss_boot 1 chmod 0660 /sys/fs/cgroup/memory/bg/tasks # ZRAM setup @@ -67,18 +77,18 @@ on post-fs on late-fs start themed_bootanimation - + on early-boot # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 # Allow subsystem (modem etc) debugging - write /sys/kernel/debug/bootkpi/kpi_values "M - Start adsp" write /sys/kernel/boot_adsp/boot 1 write /sys/kernel/boot_cdsp/boot 1 write /sys/devices/virtual/npu/msm_npu/boot 1 - write /sys/kernel/boot_slpi/boot 1 write /sys/devices/virtual/cvp/cvp/boot 1 exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qcom.early_boot.sh + exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.can.sh + setprop ro.sf.lcd_density ${vendor.display.lcd_density} # for backward compatibility chown system system /persist/sensors @@ -103,6 +113,16 @@ on early-boot chown system system /mnt/vendor/persist/data/pfm/licenses chmod 0775 /mnt/vendor/persist/data/pfm/licenses + chown system system /mnt/vendor/persist/data/pfm/licenses/store_0 + chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_0 + chown system system /mnt/vendor/persist/data/pfm/licenses/store_1 + chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_1 + chown system system /mnt/vendor/persist/data/pfm/licenses/store_2 + chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_2 + chown system system /mnt/vendor/persist/data/pfm/licenses/store_3 + chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_3 + chown system system /mnt/vendor/persist/data/pfm/licenses/store_4 + chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_4 on boot chown bluetooth net_bt /sys/class/rfkill/rfkill0/type @@ -138,9 +158,9 @@ on boot chmod 2770 /dev/socket/qmux_radio mkdir /persist/drm 0770 system system - mkdir /mnt/vendor/persist/bluetooth 0770 bluetooth bluetooth + mkdir /persist/bluetooth 0770 bluetooth bluetooth mkdir /persist/misc 0770 system system - mkdir /mnt/vendor/persist/alarm 0770 system system + mkdir /persist/alarm 0770 system system mkdir /mnt/vendor/persist/time 0770 system system mkdir /mnt/vendor/persist/secnvm 0770 system system mkdir /mnt/vendor/persist/iar_db 0770 system system @@ -169,22 +189,25 @@ on boot # an ack packet comes out of order write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1 - # Set the console loglevel to < KERN_INFO + # Set the console loglevel to < KERN_WARN # Set the default message loglevel to KERN_INFO - write /proc/sys/kernel/printk "6 6 1 7" + write /proc/sys/kernel/printk "4 6 1 7" # Allow access for CCID command/response timeout configuration chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout + # bond0 used by FST Manager + chown wifi wifi /sys/class/net/bond0/bonding/queue_id + # Allow access to emmc rawdump block partition and dload sysfs node - #chown root system /dev/block/bootdevice/by-name/rawdump - #chmod 0660 /dev/block/bootdevice/by-name/rawdump - #chown root system /sys/kernel/dload/emmc_dload - #chmod 0660 /sys/kernel/dload/emmc_dload - #chown root system /dev/block/bootdevice/by-name/ramdump - #chmod 0660 /dev/block/bootdevice/by-name/ramdump - #chown root system /sys/kernel/dload/dload_mode - #chmod 0660 /sys/kernel/dload/dload_mode + chown root system /dev/block/bootdevice/by-name/rawdump + chmod 0660 /dev/block/bootdevice/by-name/rawdump + chown root system /sys/kernel/dload/emmc_dload + chmod 0660 /sys/kernel/dload/emmc_dload + chown root system /dev/block/bootdevice/by-name/ramdump + chmod 0660 /dev/block/bootdevice/by-name/ramdump + chown root system /sys/kernel/dload/dload_mode + chmod 0660 /sys/kernel/dload/dload_mode chown system system /sys/class/backlight/panel0-backlight/brightness chown system system /sys/class/backlight/panel0-backlight/max_brightness @@ -229,6 +252,9 @@ on boot chown system system /sys/devices/platform/HardwareInfo/sar_sensor_1 chown system system /sys/devices/platform/HardwareInfo/sar_sensor_2 + # limit discard size to 128MB in order to avoid long IO latency + write /sys/block/sda/queue/discard_max_bytes 134217728 + # msm specific files that need to be created on /data on post-fs-data mkdir /data/vendor/misc 01771 system system @@ -242,6 +268,9 @@ on post-fs-data # Change lm related dirs mkdir /data/vendor/lm 0700 root root + # Create directory used by powermodule + mkdir /data/vendor/pwr 0700 root root + # Create directory used by media clients mkdir /data/vendor/media 0770 mediacodec media @@ -317,6 +346,7 @@ on post-fs-data mkdir /dev/socket/location 0770 gps gps mkdir /dev/socket/location/mq 0770 gps gps mkdir /dev/socket/location/xtra 0770 gps gps + mkdir /dev/socket/location/dgnss 0770 gps gps #Create directories for wifihal services mkdir /dev/socket/wifihal 0770 wifi wifi @@ -327,6 +357,9 @@ on post-fs-data setprop vold.post_fs_data_done 1 + #Create a folder for SRS to be able to create a usercfg file + #mkdir /data/data/media 0770 media media + #Create FM dir for patchdownloader mkdir /data/vendor/fm 0770 system system chmod 0770 /data/vendor/fm @@ -342,6 +375,11 @@ on post-fs-data copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db chown radio radio /data/vendor/radio/qcril_prebuilt.db chmod 0660 /data/vendor/radio/qcril_prebuilt.db + copy /vendor/radio/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db + copy /vendor/etc/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db + chown radio radio /data/vendor/radio/qcrilNr_prebuilt.db + chmod 0660 /data/vendor/radio/qcrilNr_prebuilt.db + # File flags for prebuilt ril db file write /data/vendor/radio/prebuilt_db_support 1 chown radio radio /data/vendor/radio/prebuilt_db_support @@ -379,6 +417,29 @@ service nqnfcinfo /system/vendor/bin/nqnfcinfo user system oneshot +service qcomsysd /system/vendor/bin/qcom-system-daemon + class main + user root + group root diag oem_2901 + disabled + +on property:persist.vendor.qcomsysd.enabled=1 + enable qcomsysd + +on property:persist.vendor.qcomsysd.enabled=0 + stop qcomsysd + +service vendor.ssr_setup /system/vendor/bin/ssr_setup + oneshot + disabled + +service vendor.ss_ramdump /system/vendor/bin/subsystem_ramdump + class main + user system + group system + ioprio rt 4 + disabled + on property:ro.vendor.iocgrp.config=1 mkdir /dev/blkio mount cgroup none /dev/blkio blkio @@ -403,28 +464,33 @@ on property:persist.sys.modem_auth_timeout=* on property:persist.sys.pil_proxy_timeout=* write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout} +on property:persist.vendor.ssr.restart_level=* + start vendor.ssr_setup + on property:persist.vendor.ssr.enable_ramdumps=1 write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 mkdir /data/vendor/ramdump_ssr 770 system system + start vendor.ss_ramdump on property:persist.vendor.ssr.enable_ramdumps=0 write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 -#on property:persist.vendor.sys.rawdump_copy=1 -# write /sys/kernel/dload/emmc_dload 1 +on property:persist.vendor.sys.rawdump_copy=1 + write /sys/kernel/dload/emmc_dload 1 -#on property:persist.vendor.sys.rawdump_copy=0 -# write /sys/kernel/dload/emmc_dload 0 +on property:persist.vendor.sys.rawdump_copy=0 + write /sys/kernel/dload/emmc_dload 0 on property:sys.boot_completed=1 write /dev/kmsg "Boot completed " - #Reset read ahead for dm-0, dm-1 and dm-2 to 128kb + #Reset read ahead for dm-0 and dm-1 to 128kb write /sys/block/dm-0/queue/read_ahead_kb 128 write /sys/block/dm-1/queue/read_ahead_kb 128 - write /sys/block/dm-2/queue/read_ahead_kb 128 #WDSP FW boot sysfs node used by STHAL chown media audio /sys/kernel/wdsp0/boot chown media audio /sys/kernel/wcd_cpe0/fw_name + #Reinit lmkd to reconfigure lmkd properties + setprop lmkd.reinit 1 on property:persist.vendor.radio.atfwd.start=false stop vendor.atfwd @@ -433,13 +499,20 @@ on property:vendor.radio.atfwd.start=false stop vendor.atfwd # corefile limit -#on property:persist.debug.trace=1 -# mkdir /data/core 0777 root root -# write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e" +on property:persist.debug.trace=1 + mkdir /data/core 0777 root root + write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e" on property:vendor.media.target.version=* setprop vendor.sys.media.target.version ${vendor.media.target.version} +on property:vendor.netflix.bsp_rev=* + setprop ro.netflix.bsp_rev ${vendor.netflix.bsp_rev} + +on property:vendor.media.target_variant=* + setprop ro.media.xml_variant.codecs ${vendor.media.target_variant} + setprop ro.media.xml_variant.codecs_performance ${vendor.media.target_variant} + service qcom-c_main-sh /vendor/bin/init.class_main.sh class main user root @@ -486,6 +559,43 @@ service vendor.sensors.qti /vendor/bin/sensors.qti on property:sys.sysctl.tcp_adv_win_scale=* write /proc/sys/net/ipv4/tcp_adv_win_scale ${sys.sysctl.tcp_adv_win_scale} +service qmiproxy /system/bin/qmiproxy + class main + user radio + group radio diag + disabled + +# Data Migration +service vendor.move_wifi_data /system/bin/move_wifi_data.sh + class main + user wifi + group wifi + disabled + oneshot + +service ptt_socket_app /system/vendor/bin/ptt_socket_app -d + class main + user wifi + group wifi system inet net_admin + capabilities NET_ADMIN + oneshot + +service ptt_ffbm /system/vendor/bin/ptt_socket_app -f -d + user root + group root + disabled + oneshot + +service wifi_ftmd /system/vendor/bin/wifi_ftmd + user system + group system inet net_admin + socket wififtmd_server dgram 0660 system system + disabled + oneshot + +on property:vendor.wifi.ftmd.load=true + insmod /system/lib/modules/pronto/pronto_wlan.ko con_mode=5 + service cnss-daemon /system/vendor/bin/cnss-daemon -n -l class late_start user system @@ -496,20 +606,33 @@ on property:sys.shutdown.requested=* write /sys/kernel/shutdown_wlan/shutdown 1 stop cnss-daemon +service ssgqmigd /vendor/bin/ssgqmigd + class late_start + user radio + group radio gps system + socket ssgqmig seqpacket 0660 radio inet + +service mlid /vendor/bin/mlid + class late_start + user gps + group gps + socket mlid stream 0666 gps gps + service loc_launcher /system/vendor/bin/loc_launcher class late_start user gps group gps -#on property:crypto.driver.load=1 -# insmod /system/lib/modules/qce.ko -# insmod /system/lib/modules/qcedev.ko - service qcom-sh /vendor/bin/init.qcom.sh class late_start user root group root system radio oneshot +# Remove since is deprecated but throws AVC denial. +# service crashdata-sh /vendor/bin/init.qcom.crashdata.sh +# class late_start +# user root +# oneshot service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh class late_start @@ -518,12 +641,37 @@ service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh disabled oneshot +service qti-testscripts /system/bin/sh /product/etc/init.qcom.testscripts.sh + class late_start + user root + disabled + oneshot + seclabel u:r:qti-testscripts:s0 + +service wifi-sdio-on /vendor/bin/init.qcom.sdio.sh + class late_start + group wifi inet + disabled + oneshot + +service wifi-crda /vendor/bin/init.crda.sh + class late_start + user root + disabled + oneshot + on property:sys.boot_completed=1 start qcom-post-boot + start qti-testscripts on property:ro.vendor.ril.mbn_copy_completed=1 write /data/vendor/radio/copy_complete 1 +service qvop-daemon /vendor/bin/qvop-daemon + class late_start + user system + group system drmrpc + service vendor.atfwd /vendor/bin/ATFWD-daemon class late_start user system @@ -533,6 +681,19 @@ service vendor.atfwd /vendor/bin/ATFWD-daemon # # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) # write /proc/sys/net/ipv4/tcp_adv_win_scale 2 +service hostapd_fst /vendor/bin/hw/hostapd -dd -g /data/vendor/wifi/hostapd/global + class main + capabilities NET_ADMIN NET_RAW + user wifi + group wifi + disabled + oneshot + +service battery_monitor /system/bin/battery_monitor + user system + group system + disabled + service vendor.ril-daemon2 /vendor/bin/hw/rild -c 2 class main user radio @@ -547,6 +708,12 @@ service vendor.ril-daemon3 /vendor/bin/hw/rild -c 3 group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW +service profiler_daemon /system/bin/profiler_daemon + class late_start + user root + group root + disabled + service vendor.charger /system/bin/chargeonlymode class charger user system @@ -554,18 +721,84 @@ service vendor.charger /system/bin/chargeonlymode capabilities SYS_BOOT seclabel u:r:charger:s0 +service vendor.ssr_diag /system/vendor/bin/ssr_diag + class late_start + user system + group system + disabled + +service diag_mdlog_start /system/vendor/bin/diag_mdlog + class late_start + user shell + group system oem_2901 sdcard_rw sdcard_r media_rw + disabled + oneshot + +service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k + class late_start + user shell + group system oem_2901 sdcard_rw sdcard_r media_rw + disabled + oneshot + +service qlogd /system/xbin/qlogd + socket qlogd stream 0662 system system + class main + disabled +on property:persist.sys.qlogd=1 + start qlogd +on property:persist.sys.qlogd=0 + stop qlogd + +service vm_bms /vendor/bin/vm_bms + class main + user root + group system wakelock + service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf class core user root group root disabled +service vendor.msm_irqbal_lb /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance_little_big.conf + class core + user root + group root + disabled + service vendor.msm_irqbl_sdm630 /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance_sdm630.conf class core user root group root disabled +# service for USERDEBUG +service vendor.LKCore-dbg /vendor/bin/LKCore + class late_start + oneshot + disabled + user root + group root system log diag net_raw + +# service for USER +service vendor.LKCore-rel /vendor/bin/LKCore + class late_start + oneshot + disabled + user system + group system log diag + +service qseeproxydaemon /system/vendor/bin/qseeproxydaemon + class late_start + user system + group system + +service esepmdaemon /system/vendor/bin/esepmdaemon + class core + user system + group nfc + on charger setprop persist.sys.usb.config mass_storage @@ -575,8 +808,19 @@ on charger start qcom-post-boot -on property:vendor.display.lcd_density=* - setprop ro.sf.lcd_density ${vendor.display.lcd_density} +#add poweroffhandler +service poweroffhandler /system/vendor/bin/poweroffhandler + class core + user media + group graphics audio + disabled + oneshot + +service time_daemon /vendor/bin/time_daemon + class main + user system + group system + capabilities SYS_TIME # Set vendor-ril lib path based on Meta version on property:vendor.rild.libpath=* @@ -591,6 +835,16 @@ service vendor.power_off_alarm /vendor/bin/power_off_alarm disabled oneshot +service chre /vendor/bin/chre + class late_start + user system + group system + socket chre seqpacket 0660 root system + shutdown critical + +on property:vendor.chre.enabled=0 + stop chre + service bugreport /system/bin/dumpstate -d -p -B -z -o /data/user_de/0/com.android.shell/files/bugreports/bugreport class main disabled diff --git a/rootdir/etc/init.recovery.qcom.rc b/rootdir/etc/init.recovery.qcom.rc index aab43df7..8eff2322 100644 --- a/rootdir/etc/init.recovery.qcom.rc +++ b/rootdir/etc/init.recovery.qcom.rc @@ -1,4 +1,4 @@ -# Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. +# Copyright (c) 2017-2018,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: @@ -40,10 +40,12 @@ on init write /config/usb_gadget/g1/os_desc/use 1 write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" + write /sys/class/backlight/panel0-backlight/brightness 200 setprop sys.usb.configfs 1 on property:ro.boot.usbcontroller=* setprop sys.usb.controller ${ro.boot.usbcontroller} + write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral on property:sys.usb.ffs.ready=1 mkdir /config/usb_gadget/g1/configs/b.1 0777 shell shell diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc index fe6776e7..b7ebf855 100755 --- a/rootdir/etc/init.target.rc +++ b/rootdir/etc/init.target.rc @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. +# Copyright (c) 2013-2018, 2020, 2021 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 @@ -112,7 +112,7 @@ on init chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq chown system system /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq chown system system /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq - + chmod 0664 /dev/stune/top-app/schedtune.boost chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq @@ -166,10 +166,11 @@ on init write /sys/module/qpnp_rtc/parameters/poweron_alarm 1 on post-fs-data - mkdir /data/tombstones/modem 0771 system system - mkdir /data/tombstones/lpass 0771 system system - mkdir /data/tombstones/wcnss 0771 system system - mkdir /data/tombstones/dsps 0771 system system + mkdir /data/vendor/tombstones/modem 0771 system system + mkdir /data/vendor/tombstones/lpass 0771 system system + mkdir /data/vendor/tombstones/wcnss 0771 system system + mkdir /data/vendor/tombstones/dsps 0771 system system + mkdir /data/vendor/misc/seemp 0700 system system on early-boot write /dev/ipa 1 @@ -185,13 +186,13 @@ on boot chown system system /sys/class/thermal/thermal_message/sconfig chmod 0666 /sys/class/thermal/thermal_message/temp_state chown system system /sys/class/thermal/thermal_message/temp_state - + # Cpusets write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/foreground/cpus 0-7 write /dev/cpuset/foreground/boost/cpus 0-7 - write /dev/cpuset/background/cpus 0-1 - write /dev/cpuset/system-background/cpus 0-2 + write /dev/cpuset/background/cpus 0-7 + write /dev/cpuset/system-background/cpus 0-7 ####Regionalization config and prop files#### chmod 0644 /persist/speccfg/spec chmod 0644 /persist/speccfg/devicetype @@ -231,6 +232,7 @@ on boot && property:persist.vendor.usb.controller.default=* on property:vendor.usb.controller=* setprop sys.usb.controller ${vendor.usb.controller} + write /sys/module/usb_f_qcrndis/parameters/rndis_dl_max_xfer_size 15916 # Touchpanel chown system system /sys/touchpanel/double_tap @@ -259,6 +261,12 @@ on property:init.svc.vendor.per_mgr=running on property:sys.shutdown.requested=* stop vendor.per_proxy +#start camera server as daemon +#service qcamerasvr /system/bin/mm-qcamera-daemon +# class late_start +# user camera +# group camera system inet input graphics + ## import cne init file #on post-fs # export LD_PRELOAD /vendor/lib/libNimsWrap.so @@ -270,11 +278,89 @@ on property:sys.shutdown.requested=* #on property:persist.usb.chgdisabled=0 # write /sys/class/power_supply/battery/charging_enabled 1 # +#service qrngd /system/bin/qrngd -f +# class main +# user root +# group root +# +#service qrngp /system/bin/qrngp +# class main +# user root +# group root +# oneshot +# disabled +# +#on property:sys.boot_completed=1 +# start qrngp +# service vendor.qseecomd /vendor/bin/qseecomd class core user root group root +#service qosmgrd /system/bin/qosmgr /system/etc/qosmgr_rules.xml +# user system +# group system +# disabled +# + +#service security-check1 /sbin/security_boot_check system +# class core +# oneshot +# +#service security-check2 /sbin/security_boot_check recovery +# class core +# oneshot +# + +# +#service usf_tester /system/vendor/bin/usf_tester +# user system +# group system inet +# disabled +# +#service usf_epos /system/vendor/bin/usf_epos +# user system +# group system inet +# disabled +# +#service usf_gesture /system/vendor/bin/usf_gesture +# user system +# group system inet +# disabled +# + +#service usf_sync_gesture /system/vendor/bin/usf_sync_gesture +# user system +# group system inet +# disabled +# + +#service usf_p2p /system/vendor/bin/usf_p2p +# user system +# group system inet +# disabled +# +#service usf_hovering /system/vendor/bin/usf_hovering +# user system +# group system inet +# disabled +# +#service usf_proximity /system/vendor/bin/usf_proximity +# user system +# group system inet +# disabled +# +#service usf-post-boot /system/vendor/bin/sh /system/etc/usf_post_boot.sh +# class late_start +# user root +# disabled +# oneshot +# +#on property:init.svc.bootanim=stopped +# start usf-post-boot +# +# #on boot # insmod /system/lib/modules/adsprpc.ko # insmod /system/lib/modules/mhi.ko @@ -288,10 +374,94 @@ service vendor.qseecomd /vendor/bin/qseecomd # chown system drmrpc /sys/devices/f9966000.i2c/i2c-1/1-0020/secure_touch_enable # chown system drmrpc /sys/devices/f9966000.i2c/i2c-1/1-0020/secure_touch # +# +# +service vendor-sensor-sh /vendor/bin/init.qcom.sensors.sh + class core + user root + oneshot +# +#service mdm_helper /system/bin/mdm_helper +# class core +# onrestart setprop ro.service.mdm_helper_restarted "true" +# disabled +# +#service mdm_helper_proxy /system/bin/mdm_helper_proxy +# class core +# disabled +# +#service mdm_launcher /system/bin/sh /init.mdm.sh +# class main +# oneshot +# +#service qcamerasvr /system/bin/mm-qcamera-daemon +# class late_start +# user camera +# group camera system inet input graphics +# +# Stop mdm_helper_proxy in case of shutdown +#on property:sys.shutdown.requested=* +# stop mdm_helper_proxy +# +# Stop mdm_helper_proxy on APQ target +#on property:ro.radio.noril=yes +# stop mdm_helper_proxy +# +#on property:persist.airplane.mode.pwr.svg=enabled +# setprop ro.mdm_helper_proxy_req false +# +#on property:init.svc.ril-daemon=running +# setprop ro.mdm_helper_proxy_req true +# +## Start mdm_helper_proxy +#on property:ro.mdm_helper_proxy_req=true +# start mdm_helper_proxy +# +## QCA1530 SoC core detect +#service gnss-detect /system/vendor/bin/gnss.qca1530.sh detect +# class core +# oneshot + +service mdtpd /system/vendor/bin/mdtpd + class late_start + user root + group system radio drmrpc service vendor.pd_mapper /system/vendor/bin/pd-mapper class core +# +## QCA1530 SoC late_start group trigger +#service gnss-init /system/vendor/bin/gnss.qca1530.sh init +# class late_start +# oneshot +# +## QCA1530 SoC Service Daemon +#service gnss-svcd /system/vendor/bin/gnss.qca1530.sh start +# class late_start +# user root +# group gps system qcom_diag diag log inet net_raw +# disabled + +on property:vold.decrypt=trigger_restart_framework + start cnss_diag + +service cnss_diag /system/vendor/bin/cnss_diag -q -f -t HELIUM + class main + user system + group system wifi inet sdcard_rw media_rw diag + oneshot + +service dcvs-sh /vendor/bin/init.qti.dcvs.sh + class late_start + user root + group root system + disabled + oneshot + +on property:vendor.dcvs.prop=1 + start dcvs-sh + service ppd /system/vendor/bin/mm-pp-dpps class late_start user system @@ -324,10 +494,36 @@ on charger setprop sys.usb.configfs 1 start vendor.power_off_alarm -service vendor.hvdcp_opti /system/vendor/bin/hvdcp_opti - class main - user root - group system wakelock +service vendor.hvdcp_opti /vendor/bin/hvdcp_opti + class main + user system + group system wakelock + capabilities BLOCK_SUSPEND WAKE_ALARM + +# +#service nqs /system/bin/nqs +# class late_start +# socket nqs_qsb_comm stream 660 system system +# user system +# group drmrpc +# +#service adsprpcd /system/vendor/bin/adsprpcd +# class main +# user media +# group media +# +##Start picture quality tuning service +#service vqttoolservice /system/bin/vqttoolservice +# class late_start +# socket vqtss stream 0660 system system +# user system +# group system + +service seempd /system/bin/seempd + class late_start + user system + group system sdcard_rw + socket seempdw dgram 0666 system system on property:sys.boot_completed=1 # Enable EAS diff --git a/rootdir/etc/ueventd.qcom.rc b/rootdir/etc/ueventd.qcom.rc index b0e38d65..c665ea80 100644 --- a/rootdir/etc/ueventd.qcom.rc +++ b/rootdir/etc/ueventd.qcom.rc @@ -1,4 +1,4 @@ -# Copyright (c) 2012-2015, 2017-2019, The Linux Foundation. All rights reserved. +# Copyright (c) 2012-2015, 2017-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: @@ -59,16 +59,21 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/ipa_adpl 0660 system oem_2905 /dev/synx_device 0660 root camera /dev/hab 0666 system system +/dev/hgsl 0666 system system +/dev/iio:device* 0664 system system -# permissions for CSVT +#permissions for UFS RPMB BSG device node +/dev/0:0:0:49476 0600 system system + +#permissions for CSVT /dev/smd11 0660 radio radio -# permsissions for BT/FM +#permsissions for BT/FM /dev/smd2 0660 bluetooth bluetooth /dev/smd3 0660 bluetooth bluetooth /dev/btpower 0660 bluetooth system -# permissions for pta +#permissions for pta /dev/pta 0660 system system /dev/radio0 0640 system system @@ -145,9 +150,8 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/sec_nvm_* 0660 system system /dev/cryptoapp 0660 system system /dev/spdaemon_ssr 0660 system system -/dev/iuicc 0660 system system -/dev/iuicc0 0660 system system -/dev/iuicc1 0660 system system +/dev/spu_hal_ssr 0660 system system +/dev/iuicc* 0660 system system /dev/gemini0 0660 system camera /dev/jpeg0 0660 system camera /dev/jpeg1 0660 system camera @@ -175,18 +179,42 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/qg 0660 system system /dev/qg_battery 0660 system system -# qvr +#qvr /dev/qvr_external_sensor_ioctl 0660 system system /sys/kernel/qvr_external_sensor/fd 0660 system system +/dev/bus/usb/001/002 0660 system system +/dev/bus/usb/001/003 0660 system system +/dev/bus/usb/001/004 0660 system system +/dev/bus/usb/001/005 0660 system system +/dev/bus/usb/002/002 0660 system system +/dev/bus/usb/002/003 0660 system system +/dev/bus/usb/002/004 0660 system system +/dev/bus/usb/002/005 0660 system system +/dev/bus/usb/003/002 0660 system system +/dev/bus/usb/003/003 0660 system system +/dev/bus/usb/003/004 0660 system system +/dev/bus/usb/003/005 0660 system system +/dev/hidraw0 0660 system system +/dev/hidraw1 0660 system system +/dev/hidraw2 0660 system system +/dev/hidraw3 0660 system system +/dev/hidraw4 0660 system system +/dev/hidraw5 0660 system system +/dev/hidraw6 0660 system system +/dev/hidraw7 0660 system system +/dev/hidraw8 0660 system system +/dev/hidraw9 0660 system system # wlan /dev/wcnss_wlan 0660 system system /dev/wcnss_ctrl 0660 system system /sys/devices/platform/soc/a000000.qcom,wcnss-wlan/net/wlan0/queues/rx-* rps_cpus 0660 system system /sys/devices/platform/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system -/sys/devices/platform/soc/18800000.qcom,icnss/net/wlan*/queues/rx-* rps_cpus 0660 system system +/sys/devices/platform/soc/*.qcom,icnss/net/wlan*/queues/rx-* rps_cpus 0660 system system /sys/devices/platform/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan*/queues/rx-* rps_cpus 0660 system system +/sys/devices/platform/soc/17a10040.qcom,wcn6750/net/wlan*/queues/rx-* rps_cpus 0660 system system /dev/spidev0.0 0660 system audio +/dev/i2c-7 0660 system audio /dev/msm_camera/* 0660 system camera /dev/gemini/ 0660 system camera /dev/mercury0 0660 system camera @@ -195,9 +223,10 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/msm_vidc_dec_sec 0660 system audio /dev/msm_vidc_enc 0660 system audio /dev/msm_rotator 0660 system system +/dev/hw_random 0600 root root /dev/sdsprpc-smd 0660 system system -# permissions for audio +#permissions for audio /dev/wcd_dsp0_control 0660 system audio /dev/wcd-dsp-glink 0660 system audio /dev/audio_slimslave 0660 system audio @@ -235,19 +264,20 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/sdio_tty_ciq_00 0660 system system /dev/tty_sdio_00 0660 system system /dev/ttyGS0 0660 system system -/dev/i2c-5 0660 media media +/dev/i2c-5 0660 media media /dev/avtimer 0660 system audio /dev/spidev2.0 0660 system audio /dev/spidev7.1 0660 system system -/dev/aud_pasthru_adsp 0660 system audio +/dev/spidev22.0 0660 system audio + # DVB devices -/dev/dvb/adapter0/demux* 0440 media media -/dev/dvb/adapter0/dvr* 0660 media media -/dev/dvb/adapter0/video* 0660 media media +/dev/dvb/adapter0/demux* 0440 media media +/dev/dvb/adapter0/dvr* 0660 media media +/dev/dvb/adapter0/video* 0660 media media # Broadcast devices -/dev/tsc_mux0 0660 media media -/dev/tsc_ci0 0660 media media +/dev/tsc_mux0 0660 media media +/dev/tsc_ci0 0660 media media # sensors /dev/sensors 0660 system system @@ -348,12 +378,16 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/class/leds/red delay_on 0640 system system /sys/class/leds/red delay_off 0640 system system /sys/class/leds/red breath 0640 system system +/sys/class/leds/red trigger 0640 system system +/sys/class/leds/red max_brightness 0640 system system /sys/class/leds/green delay_on 0640 system system /sys/class/leds/green delay_off 0640 system system /sys/class/leds/green breath 0640 system system +/sys/class/leds/green trigger 0640 system system /sys/class/leds/blue delay_on 0640 system system /sys/class/leds/blue delay_off 0640 system system /sys/class/leds/blue breath 0640 system system +/sys/class/leds/blue trigger 0640 system system # NPU device /dev/msm_npu 0644 system system @@ -363,7 +397,7 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/class/dual_role_usb/* power_role 0660 system system /sys/class/dual_role_usb/* mode 0660 system system -# Memory Offline +#Memory Offline /sys/devices/system/memory/memory* state 0660 system system /sys/devices/virtual/hdcp/msm_hdcp min_level_change 0664 system graphics @@ -397,3 +431,67 @@ firmware_directories /vendor/firmware_mnt/image/ /sys/class/graphics/fb0 modes 0664 system graphics /sys/class/graphics/fb0 mode 0664 system graphics /sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics +*/ + +/sys/devices/platform/soc/ae00000.qcom,mdss_mdp power/control 0664 system graphics + +#asm330 sensor +#common sensors files +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/enable 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/length 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/watermark 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* discharded_samples 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* current_timestamp_clock 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_flush 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_watermark 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_watermark_max 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* mount_matrix 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* name 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* sampling_frequency 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* sampling_frequency_available 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_type 0664 system system + +# standard iio accel attributes +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_scale_available 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_x_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_x_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_y_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_y_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_z_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_z_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_type 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_type 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_type 0664 system system + +# standard iio gyro attributes +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_scale_available 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_x_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_x_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_y_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_y_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_z_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_z_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_type 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_type 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_en 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_index 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_type 0664 system system + + +# standard iio temp attributes +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_offset 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_raw 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_scale 0664 system system +/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_scale_available 0664 system system diff --git a/sdm660.mk b/sdm660.mk index 21869194..92bf549f 100644 --- a/sdm660.mk +++ b/sdm660.mk @@ -287,6 +287,8 @@ PRODUCT_PACKAGES += \ init.msm.usb.configfs.rc \ init.qcom.post_boot.sh \ init.qcom.early_boot.sh \ + init.qcom.sensors.sh \ + init.qti.dcvs.sh \ init.qcom.rc \ init.qcom.sh \ init.qcom.usb.rc \