Skip to content
Snippets Groups Projects
Commit d9f505e3 authored by Matthias Kaehlcke's avatar Matthias Kaehlcke Committed by Tom Rix
Browse files

ep93xx: Fix calculation of sys ticks in clk_to_systicks()


ep93xx: Use unsigned long long for calculation of sys ticks in clk_to_systicks()
for proper handling of large intermediate values

Signed-off-by: default avatarMatthias Kaehlcke <matthias@kaehlcke.net>
parent 041d42e7
No related branches found
No related tags found
No related merge requests found
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <asm/arch/ep93xx.h> #include <asm/arch/ep93xx.h>
#include <asm/io.h> #include <asm/io.h>
#include <div64.h>
#define TIMER_CLKSEL (1 << 3) #define TIMER_CLKSEL (1 << 3)
#define TIMER_MODE (1 << 6) #define TIMER_MODE (1 << 6)
...@@ -44,9 +45,10 @@ static ulong lastdec; ...@@ -44,9 +45,10 @@ static ulong lastdec;
static inline unsigned long clk_to_systicks(unsigned long clk_ticks) static inline unsigned long clk_to_systicks(unsigned long clk_ticks)
{ {
unsigned long sys_ticks = (clk_ticks * CONFIG_SYS_HZ) / TIMER_FREQ; unsigned long long sys_ticks = (clk_ticks * CONFIG_SYS_HZ);
do_div(sys_ticks, TIMER_FREQ);
return sys_ticks; return (unsigned long)sys_ticks;
} }
static inline unsigned long usecs_to_ticks(unsigned long usecs) static inline unsigned long usecs_to_ticks(unsigned long usecs)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment