mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-11 13:08:31 -04:00
ARM: Use do_div() instead of division for "long long".
Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
1055171ed0
commit
4265c35fbc
@ -34,6 +34,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
#include <div64.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
@ -244,7 +245,11 @@ ulong get_timer_masked (void)
|
|||||||
total_count += lastdec - now;
|
total_count += lastdec - now;
|
||||||
}
|
}
|
||||||
lastdec = now;
|
lastdec = now;
|
||||||
timestamp = (ulong)(total_count/div_timer);
|
|
||||||
|
/* Reuse "now" */
|
||||||
|
now = total_count;
|
||||||
|
do_div(now, div_timer);
|
||||||
|
timestamp = now;
|
||||||
|
|
||||||
return timestamp;
|
return timestamp;
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <s3c2400.h>
|
#include <s3c2400.h>
|
||||||
|
#include <div64.h>
|
||||||
#include "tsc2000.h"
|
#include "tsc2000.h"
|
||||||
|
|
||||||
#include "Pt1000_temp_data.h"
|
#include "Pt1000_temp_data.h"
|
||||||
@ -332,6 +333,7 @@ void tsc2000_reg_init (void)
|
|||||||
int tsc2000_interpolate(long value, long data[][2], long *result)
|
int tsc2000_interpolate(long value, long data[][2], long *result)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
unsigned long long val;
|
||||||
|
|
||||||
/* the data is sorted and the first element is upper
|
/* the data is sorted and the first element is upper
|
||||||
* limit so we can easily check for out-of-band values
|
* limit so we can easily check for out-of-band values
|
||||||
@ -347,10 +349,10 @@ int tsc2000_interpolate(long value, long data[][2], long *result)
|
|||||||
result in 'long long'.
|
result in 'long long'.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
*result = data[i-1][1] +
|
val = ((unsigned long long)(data[i][1] - data[i-1][1])
|
||||||
((unsigned long long)(data[i][1] - data[i-1][1])
|
* (unsigned long long)(value - data[i-1][0]));
|
||||||
* (unsigned long long)(value - data[i-1][0]))
|
do_div(val, (data[i][0] - data[i-1][0]));
|
||||||
/ (data[i][0] - data[i-1][0]);
|
*result = data[i-1][1] + val;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/proc-armv/ptrace.h>
|
#include <asm/proc-armv/ptrace.h>
|
||||||
#include <s3c6400.h>
|
#include <s3c6400.h>
|
||||||
|
#include <div64.h>
|
||||||
|
|
||||||
static ulong timer_load_val;
|
static ulong timer_load_val;
|
||||||
|
|
||||||
@ -148,7 +149,9 @@ void reset_timer(void)
|
|||||||
|
|
||||||
ulong get_timer_masked(void)
|
ulong get_timer_masked(void)
|
||||||
{
|
{
|
||||||
return get_ticks() / (timer_load_val / (100 * CFG_HZ));
|
unsigned long long res = get_ticks();
|
||||||
|
do_div (res, (timer_load_val / (100 * CFG_HZ)));
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
ulong get_timer(ulong base)
|
ulong get_timer(ulong base)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user