diff options
author | Mike Frysinger <michael.frysinger@analog.com> | 2007-11-23 11:28:11 +0800 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-11-23 11:28:11 +0800 |
commit | 1754a5d9f97f16f729066b8f125351af4951d6fe (patch) | |
tree | cb19d854eb21c6db5de9de804ba08859b3e531ab /arch/blackfin/kernel | |
parent | e709d84b99e03b0ff588d7754754c507e5543fc9 (diff) | |
download | blackbird-op-linux-1754a5d9f97f16f729066b8f125351af4951d6fe.tar.gz blackbird-op-linux-1754a5d9f97f16f729066b8f125351af4951d6fe.zip |
Blackfin arch: use do_div() for the 64bit division as pointed out by Bernd
If you need a 64 bit divide in the kernel, use asm/div64.h.
Revert the addition of udivdi3.
Cc: Bernd Schmidt <bernd.schmidt@analog.com>
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r-- | arch/blackfin/kernel/setup.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index dfe06b09a9d4..eee5a1fcb64c 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c @@ -43,6 +43,7 @@ #include <asm/cacheflush.h> #include <asm/blackfin.h> #include <asm/cplbinit.h> +#include <asm/div64.h> #include <asm/fixed_code.h> #include <asm/early_printk.h> @@ -504,13 +505,17 @@ EXPORT_SYMBOL(get_sclk); unsigned long sclk_to_usecs(unsigned long sclk) { - return (USEC_PER_SEC * (u64)sclk) / get_sclk(); + u64 tmp = USEC_PER_SEC * (u64)sclk; + do_div(tmp, get_sclk()); + return tmp; } EXPORT_SYMBOL(sclk_to_usecs); unsigned long usecs_to_sclk(unsigned long usecs) { - return (get_sclk() * (u64)usecs) / USEC_PER_SEC; + u64 tmp = get_sclk() * (u64)usecs; + do_div(tmp, USEC_PER_SEC); + return tmp; } EXPORT_SYMBOL(usecs_to_sclk); |