diff options
| author | Mark Brown <[email protected]> | 2023-07-12 12:37:15 +0100 |
|---|---|---|
| committer | Mark Brown <[email protected]> | 2023-07-12 12:37:15 +0100 |
| commit | 441511aeeafe1b7a0c8dbcfb244cfaf1c6d91438 (patch) | |
| tree | 8969c4e7742ba50695355823e610cde4041a31a7 /include/linux | |
| parent | b8c442b391d44323a79f6b51c31dba253241c896 (diff) | |
| parent | a04616321f50bc389cd8d19a6d300d3c3f1be77b (diff) | |
ASoC: remove copy of intlog10()
Merge series from Andy Shevchenko <[email protected]>:
The first three patches moves intlog10() to be available in entire
kernel. The last one removes copy of it in one driver. Besides already
good Lines of Code (LoC) statistics the upcoming users, if any, can
utilize the exported functions.
The series can be routed via ASoC tree (as Mauro suggested).
Note, int_log.h is separated from math.h due to licensing.
I dunno if we can mix two in a single header file. In any
case we may do it later on.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/int_log.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/linux/int_log.h b/include/linux/int_log.h new file mode 100644 index 000000000000..0a6f58c38b61 --- /dev/null +++ b/include/linux/int_log.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Provides fixed-point logarithm operations. + * + * Copyright (C) 2006 Christoph Pfister ([email protected]) + */ + +#ifndef __LINUX_INT_LOG_H +#define __LINUX_INT_LOG_H + +#include <linux/types.h> + +/** + * intlog2 - computes log2 of a value; the result is shifted left by 24 bits + * + * @value: The value (must be != 0) + * + * to use rational values you can use the following method: + * + * intlog2(value) = intlog2(value * 2^x) - x * 2^24 + * + * Some usecase examples: + * + * intlog2(8) will give 3 << 24 = 3 * 2^24 + * + * intlog2(9) will give 3 << 24 + ... = 3.16... * 2^24 + * + * intlog2(1.5) = intlog2(3) - 2^24 = 0.584... * 2^24 + * + * + * return: log2(value) * 2^24 + */ +extern unsigned int intlog2(u32 value); + +/** + * intlog10 - computes log10 of a value; the result is shifted left by 24 bits + * + * @value: The value (must be != 0) + * + * to use rational values you can use the following method: + * + * intlog10(value) = intlog10(value * 10^x) - x * 2^24 + * + * An usecase example: + * + * intlog10(1000) will give 3 << 24 = 3 * 2^24 + * + * due to the implementation intlog10(1000) might be not exactly 3 * 2^24 + * + * look at intlog2 for similar examples + * + * return: log10(value) * 2^24 + */ +extern unsigned int intlog10(u32 value); + +#endif |