xref: /OK3568_Linux_fs/external/rockchip-test/cpu/cpu_freq_scaling.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/bash
2
3set_cpu_freq() {
4    echo userspace > $1/scaling_governor
5    echo $2 > $1/scaling_setspeed
6    cur=`cat $1/scaling_cur_freq`
7    if [ "$cur" -eq "$2" ];then
8        echo "cpu freq policy:${d##*policy} success change to $cur KHz"
9    else
10        echo "cpu freq: failed change to $2 KHz, now $cur KHz"
11	exit
12    fi
13}
14
15if [ "$#" -eq "1" ];then
16    for d in /sys/devices/system/cpu/cpufreq/*; do
17        read -a array < $d/scaling_available_frequencies
18        let j=${#array[@]}-1
19        for i in `seq 0 $j`; do
20            if [ "$1" -eq "${array[$i]}" ];then
21                set_cpu_freq $d $1
22                exit
23            fi
24        done
25        echo "cpu freq: $1 is not in available frequencies: "${array[*]}""
26        echo "cpu freq: now $(cat $d/scaling_cur_freq) Hz"
27    done
28else
29    cnt=0
30    RANDOM=$$$(date +%s)
31    while true; do
32        for d in /sys/devices/system/cpu/cpufreq/*; do
33            read -a FREQS < $d/scaling_available_frequencies
34            FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
35            echo -n "cnt: $cnt, "
36            set_cpu_freq $d ${FREQ}
37            let "cnt=$cnt+1"
38        done
39    done
40fi
41