aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-mips/bugs.h5
-rw-r--r--include/asm-mips/delay.h6
2 files changed, 5 insertions, 6 deletions
diff --git a/include/asm-mips/bugs.h b/include/asm-mips/bugs.h
index b14b961c2100..9247c1b4ce02 100644
--- a/include/asm-mips/bugs.h
+++ b/include/asm-mips/bugs.h
@@ -8,12 +8,17 @@
8#define _ASM_BUGS_H 8#define _ASM_BUGS_H
9 9
10#include <linux/config.h> 10#include <linux/config.h>
11#include <asm/cpu.h>
12#include <asm/cpu-info.h>
11 13
12extern void check_bugs32(void); 14extern void check_bugs32(void);
13extern void check_bugs64(void); 15extern void check_bugs64(void);
14 16
15static inline void check_bugs(void) 17static inline void check_bugs(void)
16{ 18{
19 unsigned int cpu = smp_processor_id();
20
21 cpu_data[cpu].udelay_val = loops_per_jiffy;
17 check_bugs32(); 22 check_bugs32();
18#ifdef CONFIG_64BIT 23#ifdef CONFIG_64BIT
19 check_bugs64(); 24 check_bugs64();
diff --git a/include/asm-mips/delay.h b/include/asm-mips/delay.h
index a606dbee0412..e906382576e6 100644
--- a/include/asm-mips/delay.h
+++ b/include/asm-mips/delay.h
@@ -15,8 +15,6 @@
15 15
16#include <asm/compiler.h> 16#include <asm/compiler.h>
17 17
18extern unsigned long loops_per_jiffy;
19
20static inline void __delay(unsigned long loops) 18static inline void __delay(unsigned long loops)
21{ 19{
22 if (sizeof(long) == 4) 20 if (sizeof(long) == 4)
@@ -82,11 +80,7 @@ static inline void __udelay(unsigned long usecs, unsigned long lpj)
82 __delay(usecs); 80 __delay(usecs);
83} 81}
84 82
85#ifdef CONFIG_SMP
86#define __udelay_val cpu_data[smp_processor_id()].udelay_val 83#define __udelay_val cpu_data[smp_processor_id()].udelay_val
87#else
88#define __udelay_val loops_per_jiffy
89#endif
90 84
91#define udelay(usecs) __udelay((usecs),__udelay_val) 85#define udelay(usecs) __udelay((usecs),__udelay_val)
92 86