This patch exports the gcd implementation from sound/core/pcm_timer.c into include/linux/kernel.h. AR7 uses it in its clock routines. Signed-off-by: Florian Fainelli <florian@xxxxxxxxxxx> --- diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 883cd44..878a27a 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -147,6 +147,22 @@ extern int _cond_resched(void); (__x < 0) ? -__x : __x; \ }) +/* Greatest common divisor */ +static inline unsigned long gcd(unsigned long a, unsigned long b) +{ + unsigned long r; + if (a < b) { + r = a; + a = b; + b = r; + } + while ((r = a % b) != 0) { + a = b; + b = r; + } + return b; +} + #ifdef CONFIG_PROVE_LOCKING void might_fault(void); #else diff --git a/sound/core/pcm_timer.c b/sound/core/pcm_timer.c index ca8068b..e9dbf62 100644 --- a/sound/core/pcm_timer.c +++ b/sound/core/pcm_timer.c @@ -20,6 +20,7 @@ */ #include <linux/time.h> +#include <linux/kernel.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/timer.h> @@ -28,22 +29,6 @@ * Timer functions */ -/* Greatest common divisor */ -static unsigned long gcd(unsigned long a, unsigned long b) -{ - unsigned long r; - if (a < b) { - r = a; - a = b; - b = r; - } - while ((r = a % b) != 0) { - a = b; - b = r; - } - return b; -} - void snd_pcm_timer_resolution_change(struct snd_pcm_substream *substream) { unsigned long rate, mult, fsize, l, post;