#!/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