1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRESULT_DIR=/userdata/rockchip-test/ 4*4882a593SmuzhiyunRESULT_LOG=${RESULT_DIR}/suspend_resume.txt 5*4882a593SmuzhiyunSUSPEND_MAX=60 6*4882a593SmuzhiyunSUSPEND_MIN=30 7*4882a593SmuzhiyunSUSPEND_INTERVAL=$(($SUSPEND_MAX - $SUSPEND_MIN + 1 )) 8*4882a593SmuzhiyunWAKE_MAX=60 9*4882a593SmuzhiyunWAKE_MIN=30 10*4882a593SmuzhiyunWKAE_INTERVAL=$(($WAKE_MAX - $WAKE_MIN + 1 )) 11*4882a593SmuzhiyunMAX_CYCLES=10000 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunif [ ! -e "/sys/class/rtc/rtc0/wakealarm" ];then 14*4882a593Smuzhiyun echo "non-existent rtc, please check if rtc enabled" 15*4882a593Smuzhiyun exit 16*4882a593Smuzhiyunfi 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunmkdir -p ${RESULT_DIR} 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunrandom() { 21*4882a593Smuzhiyun hexdump -n 2 -e '/2 "%u"' /dev/urandom 22*4882a593Smuzhiyun} 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunauto_suspend_resume_rtc() 25*4882a593Smuzhiyun{ 26*4882a593Smuzhiyun cnt=0 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun # set sys time same with rtc 29*4882a593Smuzhiyun hwclock --systohc 30*4882a593Smuzhiyun hwclock -w 31*4882a593Smuzhiyun echo "$(date): auto_suspend_resume_rtc start" > ${RESULT_LOG} 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun while true; do 34*4882a593Smuzhiyun echo "have done $cnt suspend/resume" 35*4882a593Smuzhiyun if [ $cnt -ge $MAX_CYCLES ] 36*4882a593Smuzhiyun then 37*4882a593Smuzhiyun echo "run $MAX_CYCLES cycles, finish test" 38*4882a593Smuzhiyun exit 0 39*4882a593Smuzhiyun fi 40*4882a593Smuzhiyun sus_time=$(( ( $(random) % $SUSPEND_INTERVAL ) + $SUSPEND_MIN )) 41*4882a593Smuzhiyun echo "sleep for $sus_time second" 42*4882a593Smuzhiyun echo 0 > /sys/class/rtc/rtc0/wakealarm 43*4882a593Smuzhiyun echo "+${sus_time}" > /sys/class/rtc/rtc0/wakealarm 44*4882a593Smuzhiyun pm-suspend 45*4882a593Smuzhiyun wake_time=$(( ( $(random) % $WKAE_INTERVAL ) + $WAKE_MIN )) 46*4882a593Smuzhiyun echo "wake for $wake_time second" 47*4882a593Smuzhiyun sleep $wake_time 48*4882a593Smuzhiyun echo "$(date): Count: $cnt - sleep: $sus_time wake: $wake_time " >> ${RESULT_LOG} 49*4882a593Smuzhiyun let "cnt=$cnt+1" 50*4882a593Smuzhiyun done 51*4882a593Smuzhiyun} 52*4882a593Smuzhiyunauto_suspend_resume_rtc 53*4882a593Smuzhiyun 54