diff --git a/rootdir/bin/init.qcom.early_boot.sh b/rootdir/bin/init.qcom.early_boot.sh
index 5224b066379d9f2deb46a6c221641412323daea3..d7545ded2b3dedcbd0557a83d94eb97c259f01dc 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:
@@ -29,6 +29,22 @@
 
 export PATH=/vendor/bin
 
+target_type=`getprop ro.hardware.type`
+if [ "$target_type" == "automotive" ]; then
+    cd /sys/devices/system/memory/
+    n=1
+    addr=`cat aligned_blocks_addr | cut -d ',' -f $n`
+    num=`cat aligned_blocks_num | cut -d ',' -f $n`
+    while [ -n "$addr" ]
+    do
+        echo $addr > probe
+        echo online > memory$num/state
+        let n++
+        addr=`cat aligned_blocks_addr | cut -d ',' -f $n`
+        num=`cat aligned_blocks_num | cut -d ',' -f $n`
+    done
+fi
+
 # Set platform variables
 if [ -f /sys/devices/soc0/hw_platform ]; then
     soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
@@ -53,6 +69,14 @@ if [ -f /sys/class/drm/card0-DSI-1/modes ]; then
         fb_width=${line%%x*};
         break;
     done < $mode_file
+elif [ -f /sys/class/drm/card0-DP-1/modes ]; then
+    echo "detect" > /sys/class/drm/card0-DP-1/status
+    is_dp_mode=1
+    mode_file=/sys/class/drm/card0-DP-1/modes
+    while read line; do
+        fb_width=${line%%x*};
+        break;
+    done < $mode_file
 elif [ -f /sys/class/graphics/fb0/virtual_size ]; then
     res=`cat /sys/class/graphics/fb0/virtual_size` 2> /dev/null
     fb_width=${res%,*}
@@ -71,6 +95,9 @@ fi
 function set_density_by_fb() {
     #put default density based on width
     if [ -z $fb_width ]; then
+        if [ $is_dp_mode -eq 1 ]; then
+            return;
+        fi
         setprop vendor.display.lcd_density 320
     else
         if [ $fb_width -ge 1600 ]; then
@@ -286,6 +313,13 @@ case "$target" in
                 ;;
         esac
         ;;
+    "qcs605")
+        case "$soc_hwplatform" in
+            *)
+                setprop vendor.display.lcd_density 640
+                ;;
+        esac
+        ;;
     "sdm845")
         case "$soc_hwplatform" in
             *)
@@ -320,13 +354,49 @@ 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
+                ;;
+        esac
+        ;;
+    "bengal")
+        case "$soc_hwid" in
+            441)
+                # 441 is for scuba
+                setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
+                setprop vendor.media.target.version 2
+                setprop vendor.gralloc.disable_ubwc 1
+                # 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)
+                #scuba APQ
+                setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
+                setprop vendor.gralloc.disable_ubwc 1
+                ;;
+            *)
+                # default case is for bengal
+                setprop vendor.opengles.version     196610
+                sku_ver=`cat /sys/devices/platform/soc/5a00000.qcom,vidc/sku_version` 2> /dev/null
+                if [ $sku_ver -eq 1 ]; then
+                    setprop vendor.media.target.version 1
+                fi
+                ;;
         esac
         ;;
     "sdm710" | "msmpeafowl")
@@ -443,7 +513,11 @@ then
                 esac
         done
     fi
-else
+fi
+
+
+drm_driver=/sys/class/drm/card0
+if [ -e "$drm_driver" ]; then
     set_perms /sys/devices/virtual/hdcp/msm_hdcp/min_level_change system.graphics 0660
 fi
 
diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh
index cfb64ca08f2cba261e76618cf28f08aa56618d5b..d3867b59aedfafd8b8983ec34dcb190bff21fbb3 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:
@@ -72,6 +72,37 @@ function 8937_sched_dcvs_eas()
 
 }
 
+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/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_sku_parameters() {
 
 #read feature id from nvram
@@ -101,8 +132,9 @@ if [ $feature_id == 6 ]; then
 	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 {class:ddr, res:capped, val: 1016} > /sys/kernel/debug/aop_send_message
 	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
@@ -126,8 +158,9 @@ elif [ $feature_id == 5 ]; then
 	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 {class:ddr, res:capped, val: 1333} > /sys/kernel/debug/aop_send_message
 	setprop vendor.sku_identified 1
+	setprop vendor.sku_name "SA6150"
 elif [ $feature_id == 4 ] || [ $feature_id == 3 ]; then
 	echo "SKU Configured : SA6155"
 	echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
@@ -151,10 +184,11 @@ elif [ $feature_id == 4 ] || [ $feature_id == 3 ]; then
 	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 {class:ddr, res:capped, val: 1555} > /sys/kernel/debug/aop_send_message
 	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
@@ -176,8 +210,9 @@ else
 	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 {class:ddr, res:capped, val: 1555} > /sys/kernel/debug/aop_send_message
         setprop vendor.sku_identified 1
+	setprop vendor.sku_name "SA6155"
 fi
 }
 
@@ -329,6 +364,182 @@ 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() {
+
+    # 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
+
+    echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
+
+    echo "0: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
+    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
+
+        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
+}
+
 target=`getprop ro.board.platform`
 
 function configure_zram_parameters() {
@@ -340,11 +551,24 @@ 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 >1GB and <=3GB Non-Go device, size = 1GB
-    # For >3GB and <=4GB Non-Go device, size = 2GB
-    # For >4GB Non-Go device, size = 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`
+    if [ $RamSizeGB -le 2 ]; then
+        zRamSizeBytes=`echo "$RamSizeGB * 1024 * 1024 * 1024 * 3 / 4" | bc`
+        zRamSizeMB=`echo "$RamSizeGB * 1024 * 3 / 4" | bc`
+    else
+        zRamSizeBytes=`echo "$RamSizeGB * 1024 * 1024 * 1024 / 2" | bc`
+        zRamSizeMB=`echo "$RamSizeGB * 1024 / 2" | bc`
+    fi
+
+    # use MB avoid 32 bit overflow
+    if [ $zRamSizeMB -gt 4096 ]; then
+        zRamSizeBytes=4294967296
+    fi
+
     if [ "$low_ram" == "true" ]; then
         echo lz4 > /sys/block/zram0/comp_algorithm
     fi
@@ -353,17 +577,17 @@ 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
-        elif [ $MemTotal -le 3145728 ]; then
-            echo 1073741824 > /sys/block/zram0/disksize
-        elif [ $MemTotal -le 4194304 ]; then
-            echo 2147483648 > /sys/block/zram0/disksize
-        else
-            echo 4294967296 > /sys/block/zram0/disksize
+        echo $zRamSizeBytes > /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
@@ -373,24 +597,22 @@ function configure_read_ahead_kb_values() {
     MemTotalStr=`cat /proc/meminfo | grep MemTotal`
     MemTotal=${MemTotalStr:16:8}
 
+    dmpts=$(ls /sys/block/*/queue/read_ahead_kb | grep -e dm -e mmc)
+
     # Set 128 for <= 3GB &
     # set 512 for >= 4GB targets.
     if [ $MemTotal -le 3145728 ]; then
         echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb
-        echo 128 > /sys/block/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/mmcblk0/queue/read_ahead_kb
         echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
-        echo 512 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
-        echo 512 > /sys/block/dm-0/queue/read_ahead_kb
-        echo 512 > /sys/block/dm-1/queue/read_ahead_kb
-        echo 512 > /sys/block/dm-2/queue/read_ahead_kb
+        for dm in $dmpts; do
+            echo 512 > $dm
+        done
     fi
 }
 
@@ -447,7 +669,7 @@ function configure_memory_parameters() {
 ProductName=`getprop ro.product.name`
 low_ram=`getprop ro.config.low_ram`
 
-if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] ; then
+if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] || [ "$ProductName" == "sdmshrike_au" ]; then
       # Enable ZRAM
       configure_zram_parameters
       configure_read_ahead_kb_values
@@ -455,11 +677,9 @@ if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] ; then
       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
@@ -517,30 +737,33 @@ else
             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 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
+            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
 
     # Set allocstall_threshold to 0 for all targets.
@@ -2510,118 +2733,27 @@ case "$target" in
             echo 90 > /proc/sys/kernel/sched_downmigrate
             echo 140 > /proc/sys/kernel/sched_group_upmigrate
             echo 120 > /proc/sys/kernel/sched_group_downmigrate
-            echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
-            echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
-            echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
-            echo 5 > /proc/sys/kernel/sched_spill_nr_run
-            echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
-            echo 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
 
             # cpuset settings
             echo 0-3 > /dev/cpuset/background/cpus
             echo 0-3 > /dev/cpuset/system-background/cpus
 
-            # disable thermal bcl hotplug to switch governor
-            echo 0 > /sys/module/msm_thermal/core_control/enabled
-
-            # 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
-            # enable LPM
-            echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
-
-            # re-enable thermal and BCL hotplug
-            echo 1 > /sys/module/msm_thermal/core_control/enabled
+            #if the kernel version >=4.14,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 14 ]; then
+                sdm660_sched_schedutil_dcvs
+            else
+                sdm660_sched_interactive_dcvs
+            fi
 
             # Set Memory parameters
             configure_memory_parameters
 
-            # Enable bus-dcvs
-            for cpubw in /sys/class/devfreq/*qcom,cpubw*
-            do
-                echo "bw_hwmon" > $cpubw/governor
-                echo 50 > $cpubw/polling_interval
-                echo 762 > $cpubw/min_freq
-                echo "1525 3143 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
+            # enable LPM
+            echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
 
             # Start cdsprpcd only for sdm660 and disable for sdm630
             start vendor.cdsprpcd
@@ -2945,7 +3077,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
@@ -3356,208 +3488,623 @@ 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
+    #Apply settings for lito
+    if [ -f /sys/devices/soc0/soc_id ]; then
+        soc_id=`cat /sys/devices/soc0/soc_id`
+    fi
 
-    # 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
+    case "$soc_id" in
+        "400" | "440" )
+        # 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
 
-    # 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
+        # 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
 
-    # 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
+        # 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
 
-    # Enable conservative pl
-    echo 1 > /proc/sys/kernel/sched_conservative_pl
+        # Set Memory parameters
+        configure_memory_parameters
 
-    echo "0:1228800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
-    echo 40 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
+        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
 
-    # 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 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
 
-    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
+            for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
+            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
+            done
 
-    # 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 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 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
 
-        for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
+            for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
         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
+                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
 
-        for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
+            #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 8 > $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 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
+                echo "cdspl3" > $l3cdsp/governor
         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 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
-
-        #Enable mem_latency governor for L3, LLCC, and DDR scaling
-	for memlat in $device/*qcom,devfreq-l3/*cpu*-lat/devfreq/*cpu*-lat
+        #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 8 > $memlat/polling_interval
             echo 400 > $memlat/mem_latency/ratio_ceil
-        done
+            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
+            #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
 
-	#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
+            #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
 
-        #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
+            #Enable compute governor for gold latfloor
+            for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
+            do
+                echo "compute" > $latfloor/governor
+                echo 8 > $latfloor/polling_interval
+            done
         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
+        # cpuset parameters
+        echo 0-5 > /dev/cpuset/background/cpus
+        echo 0-5 > /dev/cpuset/system-background/cpus
 
-        #Enable compute governor for gold latfloor
-        for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
+        # 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 "compute" > $latfloor/governor
-            echo 10 > $latfloor/polling_interval
+            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*-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
+
+            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
+
+           #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 8 > $memlat/polling_interval
+                echo 400 > $memlat/mem_latency/ratio_ceil
+            done
+
+            for gold_memlat in $device/*qcom,devfreq-l3/*cpu6*-lat/devfreq/*cpu6*-lat
+            do
+                echo 25000 > $gold_memlat/mem_latency/wb_filter_ratio
+                echo 60 > $gold_memlat/mem_latency/wb_pct_thres
+            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 8 > $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 "powersave" > $l3cdsp/governor
+            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
+
+            #Enable compute governor for gold latfloor
+            for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
+            do
+                echo "compute" > $latfloor/governor
+                echo 8 > $latfloor/polling_interval
+            done
+
         done
-    done
 
-    # cpuset parameters
-    echo 0-5 > /dev/cpuset/background/cpus
-    echo 0-5 > /dev/cpuset/system-background/cpus
+        # cpuset parameters
+        echo 0-5 > /dev/cpuset/background/cpus
+        echo 0-5 > /dev/cpuset/system-background/cpus
 
-    # Turn off scheduler boost at the end
-    echo 0 > /proc/sys/kernel/sched_boost
+        # Turn off scheduler boost at the end
+        echo 0 > /proc/sys/kernel/sched_boost
+
+        # Turn off sleep modes
+        echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
+      ;;
+    esac
+esac
+
+
+case "$target" in
+    "bengal")
+
+        if [ -f /sys/devices/soc0/soc_id ]; then
+                soc_id=`cat /sys/devices/soc0/soc_id`
+        else
+                soc_id=`cat /sys/devices/system/soc/soc0/id`
+        fi
+
+        case "$soc_id" in
+                 "417" | "420" | "444" | "445" | "469" | "470" )
+
+            # Core control is temporarily disabled till bring up
+            echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
+            echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
+            # Core control parameters on big
+            echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
+            echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
+            echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
+            echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
+
+            # Setting b.L scheduler parameters
+            echo 67 > /proc/sys/kernel/sched_downmigrate
+            echo 77 > /proc/sys/kernel/sched_upmigrate
+            echo 85 > /proc/sys/kernel/sched_group_downmigrate
+            echo 100 > /proc/sys/kernel/sched_group_upmigrate
+
+            # cpuset settings
+            echo 0-3 > /dev/cpuset/background/cpus
+            echo 0-3 > /dev/cpuset/system-background/cpus
+
+
+            # configure governor settings for little cluster
+            echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
+            echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
+            echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
+            echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
+            echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
+            echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq
+
+            # configure input boost settings
+            echo "0:1017600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
+            echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
+
+            # configure governor settings for big cluster
+            echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
+            echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
+            echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
+            echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
+            echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
+            echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq
+
+	    echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
+
+            # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
+            echo -6 >  /sys/devices/system/cpu/cpu0/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu1/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu2/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu3/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu4/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu5/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu6/sched_load_boost
+            echo -6 >  /sys/devices/system/cpu/cpu7/sched_load_boost
+            echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
+            echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
+
+            # Set Memory parameters
+            configure_memory_parameters
+
+            # Enable bus-dcvs
+            ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
+            ddr_type4="07"
+            ddr_type3="05"
+
+            for device in /sys/devices/platform/soc
+            do
+                for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
+                do
+                    echo "bw_hwmon" > $cpubw/governor
+                    echo 50 > $cpubw/polling_interval
+                    echo 762 > $cpubw/min_freq
+                    if [ ${ddr_type:4:2} == $ddr_type4 ]; then
+                        # LPDDR4
+                        echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones
+                        echo 85 > $cpubw/bw_hwmon/io_percent
+                    fi
+                    if [ ${ddr_type:4:2} == $ddr_type3 ]; then
+                        # LPDDR3
+                        echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones
+                        echo 34 > $cpubw/bw_hwmon/io_percent
+                    fi
+                    echo 4 > $cpubw/bw_hwmon/sample_ms
+                    echo 90 > $cpubw/bw_hwmon/decay_rate
+                    echo 190 > $cpubw/bw_hwmon/bw_step
+                    echo 20 > $cpubw/bw_hwmon/hist_memory
+                    echo 0 > $cpubw/bw_hwmon/hyst_length
+                    echo 80 > $cpubw/bw_hwmon/down_thres
+                    echo 0 > $cpubw/bw_hwmon/guard_band_mbps
+                    echo 250 > $cpubw/bw_hwmon/up_scale
+                   echo 1600 > $cpubw/bw_hwmon/idle_mbps
+                done
+
+                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
+
+            # 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" )
+
+            # 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 1 > /proc/sys/kernel/sched_prefer_spread
+            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
+
+            # configure input boost settings
+            echo "0:1017600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
+            echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
+
+            # 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
+
+                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
+
+            # Enable low power modes.
+            echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
+            ;;
+        esac
 
-    # Turn on sleep modes
-    echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
     ;;
 esac
 
+
+
+
+
 #Apply settings for atoll
 case "$target" in
     "atoll")
@@ -3602,6 +4149,9 @@ case "$target" in
     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
 
@@ -3666,6 +4216,12 @@ case "$target" in
             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
 
@@ -3732,6 +4288,7 @@ case "$target" in
             esac
 
       # Core control parameters on silver
+      echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
       echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
       echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
       echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
@@ -4549,7 +5106,7 @@ case "$target" in
         "MTP" | "Surf" | "RCM" )
             # Start Host based Touch processing
             case "$platform_subtype_id" in
-                "0" | "1" | "2" | "4")
+                "0" | "1" | "2" | "3" | "4" | "5")
                     start_hbtp
                     ;;
             esac
@@ -4563,12 +5120,248 @@ case "$target" in
 
     echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
     configure_memory_parameters
+    target_type=`getprop ro.hardware.type`
+	if [ "$target_type" == "automotive" ]; then
+           # update frequencies
+           configure_automotive_sku_parameters
+	fi
+
     ;;
 esac
+
 case "$target" in
-	"kona")
+    "sdmshrike")
+	# Core control parameters for gold
+	echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
+	echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
+	echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
+	echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
+	echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
+
+	# Core control parameters for gold+
+	echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
+	echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
+	echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
+	echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
+	echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
+	# Controls how many more tasks should be eligible to run on gold CPUs
+	# w.r.t number of gold CPUs available to trigger assist (max number of
+	# tasks eligible to run on previous cluster minus number of CPUs in
+	# the previous cluster).
+	#
+	# Setting to 1 by default which means there should be at least
+	# 4 tasks eligible to run on gold cluster (tasks running on gold cores
+	# plus misfit tasks on silver cores) to trigger assitance from gold+.
+	echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
+
+	# Disable Core control on silver
+	echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
+
+	# Setting b.L scheduler parameters
+	echo 95 95 > /proc/sys/kernel/sched_upmigrate
+	echo 85 85 > /proc/sys/kernel/sched_downmigrate
+	echo 100 > /proc/sys/kernel/sched_group_upmigrate
+	echo 10 > /proc/sys/kernel/sched_group_downmigrate
+	echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
+
+	# cpuset parameters
+	echo 0-3 > /dev/cpuset/background/cpus
+	echo 0-3 > /dev/cpuset/system-background/cpus
+
+	# Turn off scheduler boost at the end
+	echo 0 > /proc/sys/kernel/sched_boost
+
+	# configure governor settings for silver cluster
+	echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
+	echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
+	echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
+	echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
+	echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
+	echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
+
+	# configure governor settings for gold cluster
+	echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
+	echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
+	echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
+	echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
+	echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
+
+	# configure governor settings for gold+ cluster
+	echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
+	echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
+	echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us
+	echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
+	echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
+
+	# configure input boost settings
+	echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
+	echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
+
+	# Disable wsf, beacause we are using efk.
+	# wsf Range : 1..1000 So set to bare minimum value 1.
+        echo 1 > /proc/sys/vm/watermark_scale_factor
+
+        echo 0-3 > /dev/cpuset/background/cpus
+        echo 0-3 > /dev/cpuset/system-background/cpus
+
+        # Enable oom_reaper
+	if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
+		echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
+	else
+		echo 1 > /proc/sys/vm/reap_mem_on_sigkill
+	fi
+
+	# Enable bus-dcvs
+	for device in /sys/devices/platform/soc
+	do
+	    for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
+	    do
+		echo "bw_hwmon" > $cpubw/governor
+		echo 40 > $cpubw/polling_interval
+		echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
+		echo 4 > $cpubw/bw_hwmon/sample_ms
+		echo 50 > $cpubw/bw_hwmon/io_percent
+		echo 20 > $cpubw/bw_hwmon/hist_memory
+		echo 10 > $cpubw/bw_hwmon/hyst_length
+		echo 30 > $cpubw/bw_hwmon/down_thres
+		echo 0 > $cpubw/bw_hwmon/guard_band_mbps
+		echo 250 > $cpubw/bw_hwmon/up_scale
+		echo 1600 > $cpubw/bw_hwmon/idle_mbps
+		echo 14236 > $cpubw/max_freq
+	    done
+
+	    for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
+	    do
+		echo "bw_hwmon" > $llccbw/governor
+		echo 40 > $llccbw/polling_interval
+		echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
+		echo 4 > $llccbw/bw_hwmon/sample_ms
+		echo 80 > $llccbw/bw_hwmon/io_percent
+		echo 20 > $llccbw/bw_hwmon/hist_memory
+		echo 10 > $llccbw/bw_hwmon/hyst_length
+		echo 30 > $llccbw/bw_hwmon/down_thres
+		echo 0 > $llccbw/bw_hwmon/guard_band_mbps
+		echo 250 > $llccbw/bw_hwmon/up_scale
+		echo 1600 > $llccbw/bw_hwmon/idle_mbps
+		echo 6881 > $llccbw/max_freq
+	    done
+
+	    for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
+	    do
+		echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
+		echo "bw_hwmon" > $npubw/governor
+		echo 40 > $npubw/polling_interval
+		echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
+		echo 4 > $npubw/bw_hwmon/sample_ms
+		echo 80 > $npubw/bw_hwmon/io_percent
+		echo 20 > $npubw/bw_hwmon/hist_memory
+		echo 6  > $npubw/bw_hwmon/hyst_length
+		echo 30 > $npubw/bw_hwmon/down_thres
+		echo 0 > $npubw/bw_hwmon/guard_band_mbps
+		echo 250 > $npubw/bw_hwmon/up_scale
+		echo 0 > $npubw/bw_hwmon/idle_mbps
+		echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
+	    done
+
+	    #Enable mem_latency governor for L3, LLCC, and DDR scaling
+	    for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
+	    do
+		echo "mem_latency" > $memlat/governor
+		echo 10 > $memlat/polling_interval
+		echo 400 > $memlat/mem_latency/ratio_ceil
+	    done
+
+	    #Enable userspace governor for L3 cdsp nodes
+	    for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
+	    do
+		echo "cdspl3" > $l3cdsp/governor
+	    done
+
+	    #Enable compute governor for gold latfloor
+	    for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
+	    do
+		echo "compute" > $latfloor/governor
+		echo 10 > $latfloor/polling_interval
+	    done
+
+	    #Gold L3 ratio ceil
+	    for l3gold in $device/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat
+	    do
+		echo 4000 > $l3gold/mem_latency/ratio_ceil
+	    done
+
+	    #Prime L3 ratio ceil
+	    for l3prime in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat
+	    do
+		echo 20000 > $l3prime/mem_latency/ratio_ceil
+	    done
+	done
+
+    if [ -f /sys/devices/soc0/hw_platform ]; then
+        hw_platform=`cat /sys/devices/soc0/hw_platform`
+    else
+        hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
+    fi
+
+    if [ -f /sys/devices/soc0/platform_subtype_id ]; then
+        platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
+    fi
+
+    case "$hw_platform" in
+        "MTP" | "Surf" | "RCM" )
+            # Start Host based Touch processing
+            case "$platform_subtype_id" in
+                "0" | "1")
+                    start_hbtp
+                    ;;
+            esac
+        ;;
+        "HDK" )
+            if [ -d /sys/kernel/hbtpsensor ] ; then
+                start_hbtp
+            fi
+        ;;
+    esac
+
+	#Setting the min and max supported frequencies
+	reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
+	feature_id=$(((reg_val >> 20) & 0xFF))
+
+	#Setting the min supported frequencies
+	echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
+	echo 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
+        #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"
+
+                #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
+        elif [ $feature_id == 1 ]; then
+                echo "feature_id is 1 for SA8195P"
+
+                #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
+        else
+                echo "unknown feature_id value" $feature_id
+        fi
+
+    echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
+    configure_memory_parameters
+    ;;
+esac
 
-        rev=`cat /sys/devices/soc0/revision`
+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"
@@ -4623,7 +5416,7 @@ case "$target" in
 	else
 		echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
 	fi
-	echo 518400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
+	echo 691200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
 	echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
 
 	# configure input boost settings
@@ -4654,7 +5447,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
@@ -4665,12 +5457,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
@@ -4685,13 +5477,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
@@ -4705,6 +5497,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
 
@@ -4712,7 +5505,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
@@ -4722,13 +5514,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 8 > $memlat/polling_interval
 		echo 400 > $memlat/mem_latency/ratio_ceil
 	    done
 
@@ -4742,7 +5535,7 @@ case "$target" in
 	    for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
 	    do
 		echo "mem_latency" > $memlat/governor
-		echo 10 > $memlat/polling_interval
+		echo 8 > $memlat/polling_interval
 		echo 400 > $memlat/mem_latency/ratio_ceil
 	    done
 
@@ -4750,7 +5543,7 @@ case "$target" in
 	    for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
 	    do
 		echo "compute" > $latfloor/governor
-		echo 10 > $latfloor/polling_interval
+		echo 8 > $latfloor/polling_interval
 	    done
 
 	    #Gold L3 ratio ceil
@@ -5073,7 +5866,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" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" )
+    "msm8909" | "msm8916" | "msm8937" | "msm8952" | "msm8953" | "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "apq8098_latv" | "sdm845" | "sdm710" | "qcs605" |"msmnile" | "sdmshrike" |"msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" | "bengal" )
         setprop vendor.post_boot.parsed 1
     ;;
     "apq8084")
@@ -5150,79 +5943,6 @@ case "$target" in
      ;;
 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
-
-case "$product" in
-	"sdmshrike_au")
-	#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 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel
-                echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
-	;;
-	*)
-	;;
-esac
-
 # Let kernel know our image version/variant/crm_version
 if [ -f /sys/devices/soc0/select_image ]; then
     image_version="10:"
@@ -5240,7 +5960,7 @@ 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`
+console_config=`getprop persist.vendor.console.silent.config`
 case "$console_config" in
     "1")
         echo "Enable console config to $console_config"