hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
 
DMC_PATH=/sys/class/devfreq/dmc
 
if [ ! -e "$DMC_PATH" ];then
    echo "non-existent dmc path, please check if dmc enabled"
    exit
fi
 
set_ddr_freq() {
    echo userspace > $DMC_PATH/governor
    echo $1 > $DMC_PATH/userspace/set_freq
    cur=$(cat $DMC_PATH/cur_freq)
 
    if [ "$cur" -eq "$1" ];then
        echo "ddr freq: success change to $cur Hz"
    else
        echo "ddr freq: failed change to $1 HZ, now $cur Hz"
   exit
    fi
}
 
if [ "$#" -eq "1" ];then
    read -a array < $DMC_PATH/available_frequencies
    let j=${#array[@]}-1
    for i in `seq 0 $j`; do
        if [ "$1" -eq "${array[$i]}" ];then
            set_ddr_freq $1
            exit
        fi
    done
    echo "ddr freq: $1 is not in available frequencies: "${array[*]}""
    echo "ddr freq: now $(cat $DMC_PATH/cur_freq) Hz"
else
    cnt=0
    read -a FREQS < $DMC_PATH/available_frequencies
    RANDOM=$$$(date +%s)
    while true; do
        echo userspace > $DMC_PATH/governor
        FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
        echo -n "cnt: $cnt, "
        set_ddr_freq ${FREQ}
        let "cnt=$cnt+1"
    done
fi