14fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Recknr=$(adb shell cat /proc/cpuinfo | grep processor | wc -l)
24fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckcpubase=/sys/devices/system/cpu
34fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
44fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb root
54fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb wait-for-device
64fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell stop vendor.perfd
74fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell stop thermal-engine
84fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
94fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn ReckS=1036800
104fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckcpu=0
114fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck# Changing governor and frequency in one core will be automatically applied
124fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck# to other cores in the cluster
134fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckwhile [ $((cpu < 4)) -eq 1 ]; do
144fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck    echo "Setting cpu ${cpu} to $S hz"
154fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck    adb shell "echo userspace > $cpubase/cpu${cpu}/cpufreq/scaling_governor"
164fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck    adb shell "echo 1 > $cpubase/cpu${cpu}/online"
174fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck    adb shell "echo $S > $cpubase/cpu${cpu}/cpufreq/scaling_max_freq"
184fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck    adb shell "echo $S > $cpubase/cpu${cpu}/cpufreq/scaling_min_freq"
194fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck    cpu=$(($cpu + 1))
204fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckdone
214fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
224fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckwhile [ $((cpu < $nr)) -eq 1 ]; do
234fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck  echo "disable cpu $cpu"
244fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck  adb shell "echo 0 > $cpubase/cpu${cpu}/online"
254fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck  cpu=$(($cpu + 1))
264fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckdone
274fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
284fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckecho "setting GPU bus and idle timer"
294fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 0 > /sys/class/kgsl/kgsl-3d0/bus_split"
304fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 1 > /sys/class/kgsl/kgsl-3d0/force_clk_on"
314fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 10000 > /sys/class/kgsl/kgsl-3d0/idle_timer"
324fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
334fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck#0 762 1144 1525 2288 3143 4173 5195 5859 7759 9887 11863 13763
344fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,gpubw/min_freq"
354fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,gpubw/max_freq"
364fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,cpubw/min_freq"
374fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,cpubw/max_freq"
384fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,mincpubw/min_freq"
394fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,mincpubw/max_freq"
404fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,memlat-cpu0/min_freq"
414fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 7759 > /sys/class/devfreq/soc\:qcom,memlat-cpu0/max_freq"
424fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
434fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck# 180000000 257000000 342000000 414000000 515000000 596000000 670000000 710000000
444fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckecho "performance mode, 342 MHz"
454fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo performance > /sys/class/kgsl/kgsl-3d0/devfreq/governor"
464fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 342000000 > /sys/class/kgsl/kgsl-3d0/devfreq/min_freq"
474fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 342000000 > /sys/class/kgsl/kgsl-3d0/devfreq/max_freq"
484fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reck
494fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel"
504fbbcb7ef76669e9d1170122a10d8b3d7f74a95fJohn Reckadb shell "echo 4 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel"
51