Home | History | Annotate | Download | only in cpufreq
      1 #!/bin/bash
      2 # SPDX-License-Identifier: GPL-2.0
      3 #
      4 # CPU helpers
      5 
      6 # protect against multiple inclusion
      7 if [ $FILE_CPU ]; then
      8 	return 0
      9 else
     10 	FILE_CPU=DONE
     11 fi
     12 
     13 source cpufreq.sh
     14 
     15 for_each_cpu()
     16 {
     17 	cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
     18 	for cpu in $cpus; do
     19 		$@ $cpu
     20 	done
     21 }
     22 
     23 for_each_non_boot_cpu()
     24 {
     25 	cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
     26 	for cpu in $cpus; do
     27 		$@ $cpu
     28 	done
     29 }
     30 
     31 #$1: cpu
     32 offline_cpu()
     33 {
     34 	printf "Offline $1\n"
     35 	echo 0 > $CPUROOT/$1/online
     36 }
     37 
     38 #$1: cpu
     39 online_cpu()
     40 {
     41 	printf "Online $1\n"
     42 	echo 1 > $CPUROOT/$1/online
     43 }
     44 
     45 #$1: cpu
     46 reboot_cpu()
     47 {
     48 	offline_cpu $1
     49 	online_cpu $1
     50 }
     51 
     52 # Reboot CPUs
     53 # param: number of times we want to run the loop
     54 reboot_cpus()
     55 {
     56 	printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
     57 
     58 	for i in `seq 1 $1`; do
     59 		for_each_non_boot_cpu offline_cpu
     60 		for_each_non_boot_cpu online_cpu
     61 		printf "\n"
     62 	done
     63 
     64 	printf "\n%s\n\n" "------------------------------------------------"
     65 }
     66 
     67 # Prints warning for all CPUs with missing cpufreq directory
     68 print_unmanaged_cpus()
     69 {
     70 	for_each_cpu cpu_should_have_cpufreq_directory
     71 }
     72 
     73 # Counts CPUs with cpufreq directories
     74 count_cpufreq_managed_cpus()
     75 {
     76 	count=0;
     77 
     78 	for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do
     79 		if [ -d $CPUROOT/$cpu/cpufreq ]; then
     80 			let count=count+1;
     81 		fi
     82 	done
     83 
     84 	echo $count;
     85 }
     86