hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
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
#!/bin/bash
 
DMC_PATH1=/sys/class/devfreq/dmc
DMC_PATH2=/sys/bus/platform/drivers/rk3399-dmc-freq/dmc/devfreq/dmc
 
if [ -d "$DMC_PATH1" ];then
    DMC_PATH=$DMC_PATH1
elif [ -d $DMC_PATH2 ];then
    DMC_PATH=$DMC_PATH2
else
    echo "non-existent dmc path,please check if enable dmc"
    exit
fi
 
echo "DMC_PATH:"$DMC_PATH
 
if [ "$#" -eq "1" ];then
    echo userspace > $DMC_PATH/governor
    echo $1 > $DMC_PATH/userspace/set_freq
    val=$(cat $DMC_PATH/cur_freq)
    echo "already change to" $val"Hz done."
    array=$(cat $DMC_PATH/available_frequencies)
    let j=${#array[@]}-1
    if [ "$val" -eq "${array[j]}" ];then
        echo "change frequency to available max frequency done."
    else
        echo "!!!warning!!!"
        echo "!!!warning!!! available max frequency is" ${array[j]}"Hz"
   echo "!!!warning!!! please check frequency" $val"Hz if you need."
        echo "!!!warning!!!"
    fi
    exit
else
    unset FREQS
    read -a FREQS < $DMC_PATH/available_frequencies
 
    RANDOM=$$$(date +%s)
    while true; do
      echo userspace > $DMC_PATH/governor
      FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
      echo "set ddr frequency to $FREQ"
      echo ${FREQ} > $DMC_PATH/userspace/set_freq
    done
fi