diff --git a/rootdir/bin/init.qcom.early_boot.sh b/rootdir/bin/init.qcom.early_boot.sh index 570622a..96337ba 100755 --- a/rootdir/bin/init.qcom.early_boot.sh +++ b/rootdir/bin/init.qcom.early_boot.sh @@ -255,6 +255,9 @@ case "$target" in # 196610 is decimal for 0x30002 to report version 3.2 case "$soc_hwid" in 294|295|296|297|298|313|353|354|363|364) + # Disable adsprpcd_sensorspd daemon + setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1 + setprop vendor.opengles.version 196610 if [ $soc_hwid = 354 ] then @@ -262,10 +265,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 @@ -335,17 +341,38 @@ case "$target" in 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) + 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 "" ;; - 471) - #scuba APQ - setprop vendor.gralloc.disable_ubwc 1 + *) + # default case is for bengal + setprop vendor.netflix.bsp_rev "Q6115-31409-1" ;; esac ;; @@ -394,26 +421,27 @@ case "$target" in ;; esac ;; - "lahaina") - case "$soc_hwid" in - 450) - setprop vendor.media.target_variant "_shima_v3" - sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc/sku_version` 2> /dev/null - if [ $sku_ver -eq 1 ]; then - setprop vendor.media.target_variant "_shima_v1" - elif [ $sku_ver -eq 2 ]; then - setprop vendor.media.target_variant "_shima_v2" - fi - ;; - *) - setprop vendor.media.target_variant "_lahaina" - ;; - 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 @@ -467,6 +495,14 @@ case "$product" in *) ;; esac + +case "$product" in + "msmnile_gvmgh") + setprop vendor.display.lcd_density 160 + ;; + *) + ;; +esac # Setup display nodes & permissions # HDMI can be fb1 or fb2 # Loop through the sysfs nodes and determine diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh index 7c42a19..ea20235 100755 --- a/rootdir/bin/init.qcom.post_boot.sh +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -29,51 +29,210 @@ 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/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 + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1401600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + + echo 652800 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + + #input boost params + echo 1401600 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 34 > $cpubw/bw_hwmon/io_percent + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 10 > $cpubw/bw_hwmon/hyst_length + echo 1600 > $cpubw/bw_hwmon/idle_mbps + echo 20 > $cpubw/bw_hwmon/low_power_delay + echo 34 > $cpubw/bw_hwmon/low_power_io_percent + echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1611 > $cpubw/min_freq + done + done + else + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1401600 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load + + echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + + fi } function 8917_sched_dcvs_eas() { - #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 + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1094400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8917 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + + echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + + #input boost params + echo 1094400 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 20 > $cpubw/bw_hwmon/io_percent + echo 30 > $cpubw/bw_hwmon/guard_band_mbps + done + done + else + #governor settings + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1094400 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8917 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load + + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + fi + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + fi } function 8937_sched_dcvs_eas() { - # 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 + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1094400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8937 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + + ## enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + #set the hispeed_freq + echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8937 it should be 85 + echo 85 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_load + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl + echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq + + echo 768000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq + + #input boost params + echo 109440 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + + # Enable bus-dcvs + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 20 > $cpubw/bw_hwmon/io_percent + echo 30 > $cpubw/bw_hwmon/guard_band_mbps + done + done + else + # enable governor for perf cluster + echo 1 > /sys/devices/system/cpu/cpu0/online + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8937 it should be 85 + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + ## enable governor for power cluster + echo 1 > /sys/devices/system/cpu/cpu4/online + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + #set the hispeed_freq + echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + #default value for hispeed_load is 90, for 8937 it should be 85 + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + fi + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + fi } function configure_automotive_sku_parameters() { @@ -82,12 +241,19 @@ function configure_automotive_sku_parameters() { 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)) @@ -107,6 +273,50 @@ else fi } +function configure_automotive_sku_parameters_sa8195() { + + #Setting the min supported frequencies + echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/min_freq + echo 940800000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/min_freq + echo 1651200000 > /sys/class/devfreq/18321110.qcom,cpu0-cpu-l3-lat/max_freq + echo 1651200000 > /sys/class/devfreq/18321110.qcom,cpu4-cpu-l3-lat/max_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq + echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq + echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq + echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq + + #read feature id + reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4` + feature_id=$(((reg_val >> 20) & 0xFF)) + + #setting min gpu freq to 392 MHz + echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel + if [ $feature_id == 0 ]; then + echo "feature_id is 0 for SA8195AA" + + #setting max cpu freq to 2.496GHz + echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + #setting max gpu freq to 530 MHz + echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo 1804 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq + elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then + echo "feature_id is 1 for external SA8195AB" + echo "feature_id is 2 for internal SA8195AB" + + #setting max cpu freq to 2.496GHz + echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq + #setting max gpu freq to 670 MHz + echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel + echo 2092 > /sys/devices/platform/soc/soc:aop-set-ddr-freq/set_ddr_capped_freq + elif [ $feature_id == 3 ]; then + echo "feature_id is 3 for external SA8195AC" + else + echo "unknown feature_id value" $feature_id + fi +} + function configure_sku_parameters() { #read feature id from nvram @@ -131,12 +341,16 @@ 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:capped, 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 @@ -157,12 +371,16 @@ 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:capped, 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 setprop vendor.sku_name "SA6150" elif [ $feature_id == 4 ] || [ $feature_id == 3 ]; then @@ -183,12 +401,16 @@ 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:capped, 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 @@ -209,12 +431,16 @@ 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:capped, 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 @@ -586,11 +812,6 @@ KernelVersionA=${KernelVersionStr:0:1} KernelVersionB=${KernelVersionS%.*} function configure_zram_parameters() { - postboot_running=$(getprop vendor.sys.memplus.postboot 0) - if [ $postboot_running == 3 ];then - return - fi - MemTotalStr=`cat /proc/meminfo | grep MemTotal` MemTotal=${MemTotalStr:16:8} @@ -693,192 +914,11 @@ function enable_swap() { fi } -# huangwen.chen@OPTI, 2020/05/14, add for zram writeback -function configure_zram_writeback() { - # get backing storage size, unit: MB - backing_dev_size=$(getprop persist.vendor.zwriteback.backing_dev_size) - case $backing_dev_size in - [1-9]) - ;; - [1-9][0-9]*) - ;; - *) - backing_dev_size=2048 - ;; - esac - - dump_switch=$(getprop persist.vendor.zwriteback.backup) - wb_file="/data/vendor/swap/zram_wb" - if [[ -f $wb_file && $dump_switch == 1 ]];then - rm -f "/data/vendor/swap/zram_wb.old" - mv $wb_file "/data/vendor/swap/zram_wb.old" - fi - # create backing storage - # check if dd command success - ret=$(dd if=/dev/zero of=/data/vendor/swap/zram_wb bs=1m count=$backing_dev_size 2>&1) - if [ $? -ne 0 ];then - rm -f /data/vendor/swap/zram_wb - echo "memplus $ret" > /dev/kmsg - return 1 - fi - - # check if attaching file success - losetup -f - loop_device=$(losetup -f -s /data/vendor/swap/zram_wb 2>&1) - if [ $? -ne 0 ];then - rm -f /data/vendor/swap/zram_wb - echo "memplus $loop_device" > /dev/kmsg - return 1 - fi - echo $loop_device > /sys/block/zram0/backing_dev - - mem_limit=$(getprop persist.vendor.zwriteback.mem_limit) - case $mem_limit in - [1-9]) - mem_limit="${mem_limit}M" - ;; - [1-9][0-9]*) - mem_limit="${mem_limit}M" - ;; - *) - mem_limit="1G" - ;; - esac - echo $mem_limit > /sys/block/zram0/mem_limit -} - -# bin.zhong@ASTI, 2019/10/12, add for memplus -function configure_memplus_parameters() { - bootmode=`getprop ro.vendor.factory.mode` - if [ "$bootmode" == "ftm" ] || [ "$bootmode" == "wlan" ] || [ "$bootmode" == "rf" ];then - return - fi - if [ ! $memplus_post_config ];then - setprop vendor.sys.memplus.postboot "disable" - return - fi - setprop vendor.sys.memplus.postboot 1 - memplus=`getprop persist.vendor.memplus.enable` - case "$memplus" in - "0") - # diable swapspace - rm /data/vendor/swap/swapfile - echo "memplus swapoff start" > /dev/kmsg - ret=$(swapoff /dev/block/zram0 2>&1) - if [ $? -ne 0 ];then - echo "memplus $ret" > /dev/kmsg - return - fi - echo "memplus swapoff done" > /dev/kmsg - ;; - "1") - # enable memplus - rm /data/vendor/swap/swapfile - # reset zram swapspace - # huangwen.chen@OPTI, 2020/07/10 check if swapoff success - echo "memplus swapoff start" > /dev/kmsg - ret=$(swapoff /dev/block/zram0 2>&1) - if [ $? -ne 0 ];then - echo "memplus $ret" > /dev/kmsg - return - fi - echo "memplus swapoff done" > /dev/kmsg - echo 1 > /sys/block/zram0/reset - - # huangwen.chen@OPTI, 2020/05/21 set zram disksize by property - disksize=$(getprop persist.vendor.zwriteback.disksize) - case $disksize in - [1-9]) - disksize="${disksize}M" - ;; - [1-9][0-9]*) - disksize="${disksize}M" - ;; - *) - disksize="2100M" - ;; - esac - - # huangwen.chen@OPTI, 2020/05/14 add for zram writeback - # check if ZRAM_WRITEBACK_CONFIG enable - writeback_file="/sys/block/zram0/writeback" - zwriteback=$(getprop persist.vendor.zwriteback.enable) - if [[ -f $writeback_file && $zwriteback == 1 ]];then - configure_zram_writeback - # check if configure_zram_writeback success - if [ $? -ne 0 ];then - echo 0 > /sys/block/zram0/mem_limit - fi - else - rm -f /data/vendor/swap/zram_wb - disksize="2100M" - echo 0 > /sys/block/zram0/mem_limit - fi - echo $disksize > /sys/block/zram0/disksize - - mkswap /dev/block/zram0 - echo "memplus swapon start" > /dev/kmsg - swapon /dev/block/zram0 -p 32758 - if [ $? -eq 0 ]; then - echo 1 > /sys/module/memplus_core/parameters/memory_plus_enabled - fi - echo "memplus swapon done" > /dev/kmsg - ;; - *) - #enable kswapd - rm /data/vendor/swap/swapfile - # reset zram swapspace - # huangwen.chen@OPTI, 2020/07/10 check if swapoff success - echo "memplus swapoff start" > /dev/kmsg - ret=$(swapoff /dev/block/zram0 2>&1) - if [ $? -ne 0 ];then - echo "memplus $ret" > /dev/kmsg - return - fi - echo "memplus swapoff done" > /dev/kmsg - echo 1 > /sys/block/zram0/reset - echo lz4 > /sys/block/zram0/comp_algorithm - - # huangwen.chen@OPTI, 2020/05/21 set zram disksize by property - disksize=$(getprop persist.vendor.zwriteback.disksize) - case $disksize in - [1-9]) - disksize="${disksize}M" - ;; - [1-9][0-9]*) - disksize="${disksize}M" - ;; - *) - disksize="2100M" - ;; - esac - - # huangwen.chen@OPTI, 2020/05/14 add for zram writeback - # check if ZRAM_WRITEBACK_CONFIG enable - writeback_file="/sys/block/zram0/writeback" - zwriteback=$(getprop persist.vendor.zwriteback.enable) - if [[ -f $writeback_file && $zwriteback == 1 ]];then - configure_zram_writeback - if [ $? -ne 0 ];then - echo 0 > /sys/block/zram0/mem_limit - fi - else - rm -f /data/vendor/swap/zram_wb - disksize="2100M" - echo 0 > /sys/block/zram0/mem_limit - fi - echo $disksize > /sys/block/zram0/disksize - - mkswap /dev/block/zram0 - echo "memplus swapon start" > /dev/kmsg - swapon /dev/block/zram0 -p 32758 - echo "memplus swapon done" > /dev/kmsg - if [ $? -eq 0 ]; then - echo 0 > /sys/module/memplus_core/parameters/memory_plus_enabled - fi - ;; - esac - setprop vendor.sys.memplus.postboot 2 +function disable_ppr() +{ + if [ -f /sys/module/process_reclaim/parameters/enable_process_reclaim ]; then + echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim + fi } function configure_memory_parameters() { @@ -1018,12 +1058,7 @@ else # Disable wsf for all targets beacause we are using efk. # wsf Range : 1..1000 So set to bare minimum value 1. - # set watermark_scale_factor = 36MB * 1024 * 1024 * 10 / MemTotal - factor=`expr 377487360 / $MemTotal` - echo $factor > /proc/sys/vm/watermark_scale_factor - - # set min_free_kbytes = 32MB - echo 32768 > /proc/sys/vm/min_free_kbytes + echo 1 > /proc/sys/vm/watermark_scale_factor configure_zram_parameters @@ -2355,8 +2390,8 @@ case "$target" in 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 @@ -2395,6 +2430,10 @@ case "$target" in # Set Memory parameters configure_memory_parameters + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + disable_ppr + fi ;; esac case "$soc_id" in @@ -2609,28 +2648,30 @@ 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 @@ -2639,8 +2680,9 @@ case "$target" in 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 @@ -2665,6 +2707,10 @@ case "$target" in echo 1 > /proc/sys/kernel/power_aware_timer_migration # Set Memory parameters configure_memory_parameters + + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + disable_ppr + fi ;; *) ;; @@ -2690,28 +2736,30 @@ case "$target" in #disable sched_boost in 8937 echo 0 > /proc/sys/kernel/sched_boost - for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor - do - echo "cpufreq" > $devfreq_gov - done - - for devfreq_gov in /sys/class/devfreq/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 and core_ctl settings echo 0 > /sys/module/msm_thermal/core_control/enabled @@ -2720,9 +2768,9 @@ case "$target" in 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 @@ -2762,6 +2810,9 @@ case "$target" in echo 1 > /proc/sys/kernel/power_aware_timer_migration # Set Memory parameters configure_memory_parameters + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + disable_ppr + fi ;; *) @@ -2779,55 +2830,104 @@ case "$target" in esac # 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 20 > $cpubw/bw_hwmon/io_percent + echo 30 > $cpubw/bw_hwmon/guard_band_mbps + done + done + else + for cpubw in /sys/class/devfreq/*qcom,mincpubw* + do + echo "cpufreq" > $cpubw/governor + done - for cpubw in /sys/class/devfreq/*qcom,cpubw* - do - echo "bw_hwmon" > $cpubw/governor - echo 20 > $cpubw/bw_hwmon/io_percent - echo 30 > $cpubw/bw_hwmon/guard_band_mbps - done + for 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/up_rate_limit_us - echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + 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 - #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 # 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/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 - # 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 @@ -2871,14 +2971,39 @@ 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/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 + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us + + #set the hispeed_freq + echo 1305600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq + echo 80 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_load + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl + echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq + echo 960000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq + #input boost params + + echo 1305600 > /sys/module/cpu_boost/parameters/input_boost_freq + echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms + else + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + + #set the hispeed_freq + echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + fi + # sched_load_boost as -6 is equivalent to target load as 85. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost @@ -2895,6 +3020,10 @@ case "$target" in # Set Memory parameters configure_memory_parameters + if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then + disable_ppr + fi + #disable sched_boost echo 0 > /proc/sys/kernel/sched_boost @@ -3021,6 +3150,9 @@ case "$target" in ;; esac + # Disable cdsprpcd daemon for sdm630 + setprop vendor.fastrpc.disable.cdsprpcd.daemon 1 + # Setting b.L scheduler parameters echo 85 > /proc/sys/kernel/sched_upmigrate echo 85 > /proc/sys/kernel/sched_downmigrate @@ -3321,7 +3453,7 @@ case "$target" in fi case "$soc_id" in - "394" ) + "394" | "467" | "468" ) # Core control parameters on big echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus @@ -4013,7 +4145,7 @@ case "$target" in fi case "$soc_id" in - "417" | "420" | "444" | "445" ) + "417" | "420" | "444" | "445" | "469" | "470" ) # Core control is temporarily disabled till bring up echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable @@ -4051,6 +4183,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. @@ -4119,9 +4254,108 @@ case "$target" in ;; esac + #power/perf tunings for khaje + case "$soc_id" in + "518" ) + + # Core control parameters on big + echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable + echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus + echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres + echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres + echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms + echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres + + # Setting b.L scheduler parameters + echo 65 > /proc/sys/kernel/sched_downmigrate + echo 71 > /proc/sys/kernel/sched_upmigrate + echo 85 > /proc/sys/kernel/sched_group_downmigrate + echo 100 > /proc/sys/kernel/sched_group_upmigrate + + # cpuset settings + echo 0-3 > /dev/cpuset/background/cpus + echo 0-3 > /dev/cpuset/system-background/cpus + + + # configure governor settings for little cluster + echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us + echo 1516800 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq + echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq + + # configure governor settings for big cluster + echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us + echo 1344000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq + echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq + echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq + + echo "0:1190000" > /sys/devices/system/cpu/cpu_boost/input_boost_freq + echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms + + echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks + + # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable. + echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost + echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost + echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load + echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load + + # Set Memory parameters + configure_memory_parameters + + # Enable bus-dcvs + + for device in /sys/devices/platform/soc + do + for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw + do + echo "bw_hwmon" > $cpubw/governor + echo 50 > $cpubw/polling_interval + echo 762 > $cpubw/min_freq + echo "2288 3440 4173 5195 5859 7759 10322 11863 13763 15960" > $cpubw/bw_hwmon/mbps_zones + echo 85 > $cpubw/bw_hwmon/io_percent + echo 4 > $cpubw/bw_hwmon/sample_ms + echo 90 > $cpubw/bw_hwmon/decay_rate + echo 190 > $cpubw/bw_hwmon/bw_step + echo 20 > $cpubw/bw_hwmon/hist_memory + echo 0 > $cpubw/bw_hwmon/hyst_length + echo 80 > $cpubw/bw_hwmon/down_thres + echo 0 > $cpubw/bw_hwmon/guard_band_mbps + echo 250 > $cpubw/bw_hwmon/up_scale + echo 1600 > $cpubw/bw_hwmon/idle_mbps + done + + done + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 + + # colcoation v3 disabled + echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost + echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation + + # Turn off scheduler boost at the end + echo 0 > /proc/sys/kernel/sched_boost + + # Turn on sleep modes + echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled + + ;; + esac + # Scuba perf/power tunings case "$soc_id" in - "441" ) + "441" | "471" | "473" | "474" ) # Quad-core device. disable core_ctl echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable @@ -4178,18 +4412,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 + # memlat specific settings are moved to seperate file under + # device/target specific folder + setprop vendor.dcvs.prop 1 - for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor* - do - echo "compute" > $latfloor/governor - echo 10 > $latfloor/polling_interval - done done # Disable low power modes. Enable it after LPM stable @@ -5164,9 +5390,18 @@ 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 - configure_automotive_sku_parameters + if [ "$soc_id" == "340" ] | [ "$soc_id" == "405" ]; then #sa8195 + configure_automotive_sku_parameters_sa8195 + else #sa8155 + configure_automotive_sku_parameters + fi fi ;; @@ -5386,7 +5621,7 @@ case "$target" in 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:capped, val: 1804} > /sys/kernel/debug/aop_send_message + 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" @@ -5395,7 +5630,7 @@ case "$target" in 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:capped, 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 @@ -5452,8 +5687,6 @@ case "$target" in echo 0-3 > /dev/cpuset/background/cpus echo 0-3 > /dev/cpuset/system-background/cpus - echo 0-6 > /dev/cpuset/foreground/cpus - # Turn off scheduler boost at the end echo 0 > /proc/sys/kernel/sched_boost @@ -5491,11 +5724,6 @@ case "$target" in fi echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl - # ifdef VENDOR_EDIT - # yankelong@BSP, 2019/5/8/, add for Enable ufs performance. - echo 0 > /sys/class/scsi_host/host0/../../../clkscale_enable - # endif VENDOR_EDIT - # Enable bus-dcvs for device in /sys/devices/platform/soc do @@ -5578,12 +5806,7 @@ case "$target" in setprop vendor.dcvs.prop 0 setprop vendor.dcvs.prop 1 echo N > /sys/module/lpm_levels/parameters/sleep_disabled - # Enable fsc. - echo 1 > /sys/module/fsc/parameters/enable configure_memory_parameters - - # bin.zhong@ASTI, 2019/10/12, add for memplus - memplus_post_config=1 ;; esac @@ -5990,10 +6213,3 @@ esac misc_link=$(ls -l /dev/block/bootdevice/by-name/misc) real_path=${misc_link##*>} setprop persist.vendor.mmi.misc_dev_path $real_path -# bin.zhong@ASTI, 2019/10/12, add for memplus - -# huangwen.chen@OPTI, 2020/07/10, excute on first boot. -postboot_running=$(getprop vendor.sys.memplus.postboot 0) -if [ $postboot_running != 3 ];then - configure_memplus_parameters -fi diff --git a/rootdir/bin/init.qcom.sh b/rootdir/bin/init.qcom.sh index 02c0394..b80e98a 100755 --- a/rootdir/bin/init.qcom.sh +++ b/rootdir/bin/init.qcom.sh @@ -456,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/ueventd.rc b/rootdir/ueventd.rc index 8cfc52b..c5eac77 100644 --- a/rootdir/ueventd.rc +++ b/rootdir/ueventd.rc @@ -59,6 +59,7 @@ 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 UFS RPMB BSG device node @@ -181,6 +182,28 @@ firmware_directories /vendor/firmware_mnt/image/ #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 # bug 550748,zhanghaibin1@wt,20200509,Add hardware_info /dev/hardwareinfo 0660 root system @@ -190,8 +213,9 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/wcnss_ctrl 0660 system system /sys/devices/soc/a000000.qcom,wcnss-wlan/net/wlan0/queues/rx-* rps_cpus 0660 system system /sys/devices/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 @@ -202,6 +226,7 @@ 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 @@ -245,6 +270,8 @@ firmware_directories /vendor/firmware_mnt/image/ /dev/i2c-5 0660 media media /dev/avtimer 0660 system audio /dev/spidev2.0 0660 system audio +/dev/spidev22.0 0660 system audio +/dev/spidev10.0 0660 system audio # DVB devices /dev/dvb/adapter0/demux* 0440 media media @@ -420,6 +447,8 @@ firmware_directories /vendor/firmware_mnt/image/ /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