1 /* 2 * (C) Copyright 2010 3 * Texas Instruments, <www.ti.com> 4 * Aneesh V <aneesh@ti.com> 5 * 6 * SPDX-License-Identifier: GPL-2.0+ 7 */ 8 #ifndef _UTILS_H_ 9 #define _UTILS_H_ 10 11 static inline s32 log_2_n_round_up(u32 n) 12 { 13 s32 log2n = -1; 14 u32 temp = n; 15 16 while (temp) { 17 log2n++; 18 temp >>= 1; 19 } 20 21 if (n & (n - 1)) 22 return log2n + 1; /* not power of 2 - round up */ 23 else 24 return log2n; /* power of 2 */ 25 } 26 27 static inline s32 log_2_n_round_down(u32 n) 28 { 29 s32 log2n = -1; 30 u32 temp = n; 31 32 while (temp) { 33 log2n++; 34 temp >>= 1; 35 } 36 37 return log2n; 38 } 39 40 #endif 41