Commit 7b9726a7a0d8c70ea44a5ed23726748de344f223
1 parent
e7d7deca60
Exists in
master
and in
4 other branches
sh: Fix up the sh64 build.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Showing 2 changed files with 7 additions and 19 deletions Side-by-side Diff
arch/sh/lib64/udelay.c
... | ... | @@ -21,7 +21,7 @@ |
21 | 21 | * a 1GHz box, that's about 2 seconds. |
22 | 22 | */ |
23 | 23 | |
24 | -void __delay(int loops) | |
24 | +void __delay(unsigned long loops) | |
25 | 25 | { |
26 | 26 | long long dummy; |
27 | 27 | __asm__ __volatile__("gettr tr0, %1\n\t" |
28 | 28 | |
29 | 29 | |
30 | 30 | |
31 | 31 | |
32 | 32 | |
... | ... | @@ -33,25 +33,18 @@ |
33 | 33 | :"0"(loops)); |
34 | 34 | } |
35 | 35 | |
36 | -void __udelay(unsigned long long usecs, unsigned long lpj) | |
36 | +inline void __const_udelay(unsigned long xloops) | |
37 | 37 | { |
38 | - usecs *= (((unsigned long long) HZ << 32) / 1000000) * lpj; | |
39 | - __delay((long long) usecs >> 32); | |
38 | + __delay(xloops * (HZ * cpu_data[raw_smp_processor_id()].loops_per_jiffy)); | |
40 | 39 | } |
41 | 40 | |
42 | -void __ndelay(unsigned long long nsecs, unsigned long lpj) | |
41 | +void __udelay(unsigned long usecs) | |
43 | 42 | { |
44 | - nsecs *= (((unsigned long long) HZ << 32) / 1000000000) * lpj; | |
45 | - __delay((long long) nsecs >> 32); | |
43 | + __const_udelay(usecs * 0x000010c6); /* 2**32 / 1000000 */ | |
46 | 44 | } |
47 | 45 | |
48 | -void udelay(unsigned long usecs) | |
46 | +void __ndelay(unsigned long nsecs) | |
49 | 47 | { |
50 | - __udelay(usecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy); | |
51 | -} | |
52 | - | |
53 | -void ndelay(unsigned long nsecs) | |
54 | -{ | |
55 | - __ndelay(nsecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy); | |
48 | + __const_udelay(nsecs * 0x00000005); | |
56 | 49 | } |
include/asm-sh/delay.h
... | ... | @@ -15,7 +15,6 @@ |
15 | 15 | extern void __const_udelay(unsigned long xloops); |
16 | 16 | extern void __delay(unsigned long loops); |
17 | 17 | |
18 | -#ifdef CONFIG_SUPERH32 | |
19 | 18 | #define udelay(n) (__builtin_constant_p(n) ? \ |
20 | 19 | ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \ |
21 | 20 | __udelay(n)) |
... | ... | @@ -23,10 +22,6 @@ |
23 | 22 | #define ndelay(n) (__builtin_constant_p(n) ? \ |
24 | 23 | ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ |
25 | 24 | __ndelay(n)) |
26 | -#else | |
27 | -extern void udelay(unsigned long usecs); | |
28 | -extern void ndelay(unsigned long nsecs); | |
29 | -#endif | |
30 | 25 | |
31 | 26 | #endif /* __ASM_SH_DELAY_H */ |