1*dd0948b3SAndroid Build Coastguard Worker#!/system/bin/sh 2*dd0948b3SAndroid Build Coastguard Worker# 3*dd0948b3SAndroid Build Coastguard Worker# Copyright (C) 2021 The Android Open Source Project 4*dd0948b3SAndroid Build Coastguard Worker# 5*dd0948b3SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*dd0948b3SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*dd0948b3SAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*dd0948b3SAndroid Build Coastguard Worker# 9*dd0948b3SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*dd0948b3SAndroid Build Coastguard Worker# 11*dd0948b3SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*dd0948b3SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*dd0948b3SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*dd0948b3SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*dd0948b3SAndroid Build Coastguard Worker# limitations under the License. 16*dd0948b3SAndroid Build Coastguard Worker 17*dd0948b3SAndroid Build Coastguard Worker# Exit on errors, or whenever an unset variable is substituted 18*dd0948b3SAndroid Build Coastguard Workerset -eu 19*dd0948b3SAndroid Build Coastguard Worker 20*dd0948b3SAndroid Build Coastguard Workerstop thermal_manager 21*dd0948b3SAndroid Build Coastguard Workersetprop vendor.powerhal.init 0 22*dd0948b3SAndroid Build Coastguard Workerstop power-hal-1-0 23*dd0948b3SAndroid Build Coastguard Workerstart power-hal-1-0 24*dd0948b3SAndroid Build Coastguard Worker 25*dd0948b3SAndroid Build Coastguard Workerecho 'Locking CPU to 1125000 (56% relative to max freq)' 26*dd0948b3SAndroid Build Coastguard Workerecho 11 > /proc/ppm/policy/ut_fix_freq_idx 27*dd0948b3SAndroid Build Coastguard Worker 28*dd0948b3SAndroid Build Coastguard Workerexpected_gpu_freq='390000' 29*dd0948b3SAndroid Build Coastguard Workerecho "Locking GPU to ${expected_gpu_freq} (min freq)" 30*dd0948b3SAndroid Build Coastguard Workerecho "${expected_gpu_freq}" > /proc/gpufreq/gpufreq_opp_freq 31*dd0948b3SAndroid Build Coastguard Worker 32*dd0948b3SAndroid Build Coastguard Workerexpected_cpu_freqs='1125000, 1125000, 1125000, 1125000' 33*dd0948b3SAndroid Build Coastguard Workercpu_freqs="$(cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq | sed -z 's/\n/, /g')" 34*dd0948b3SAndroid Build Coastguard Workerecho "Set CPU frequencies to ${cpu_freqs}" 35*dd0948b3SAndroid Build Coastguard Workerif [[ "${cpu_freqs}" -ne "${expected_cpu_freqs}" ]]; then 36*dd0948b3SAndroid Build Coastguard Worker echo "Failed to set CPUs to expected frequencies: ${expected_cpu_freqs}" 37*dd0948b3SAndroid Build Coastguard Worker exit 1 38*dd0948b3SAndroid Build Coastguard Workerfi 39*dd0948b3SAndroid Build Coastguard Worker 40*dd0948b3SAndroid Build Coastguard Workergpu_freq="$(cat /proc/gpufreq/gpufreq_opp_freq | tail -n 1 | cut -d '=, ' -f 5)" 41*dd0948b3SAndroid Build Coastguard Workerecho "Set GPU frequency to ${gpu_freq}" 42*dd0948b3SAndroid Build Coastguard Workerif [[ "${gpu_freq}" -ne "${expected_gpu_freq}" ]]; then 43*dd0948b3SAndroid Build Coastguard Worker echo "Failed to set GPU to expected frequency: ${expected_gpu_freq}" 44*dd0948b3SAndroid Build Coastguard Worker exit 1 45*dd0948b3SAndroid Build Coastguard Workerfi 46*dd0948b3SAndroid Build Coastguard Worker 47*dd0948b3SAndroid Build Coastguard Worker 48