diff options
Diffstat (limited to 'include/asm-x86/mc146818rtc.h')
-rw-r--r-- | include/asm-x86/mc146818rtc.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/include/asm-x86/mc146818rtc.h b/include/asm-x86/mc146818rtc.h index cdd9f965835a..daf1ccde77af 100644 --- a/include/asm-x86/mc146818rtc.h +++ b/include/asm-x86/mc146818rtc.h | |||
@@ -42,7 +42,7 @@ extern volatile unsigned long cmos_lock; | |||
42 | static inline void lock_cmos(unsigned char reg) | 42 | static inline void lock_cmos(unsigned char reg) |
43 | { | 43 | { |
44 | unsigned long new; | 44 | unsigned long new; |
45 | new = ((smp_processor_id()+1) << 8) | reg; | 45 | new = ((smp_processor_id() + 1) << 8) | reg; |
46 | for (;;) { | 46 | for (;;) { |
47 | if (cmos_lock) { | 47 | if (cmos_lock) { |
48 | cpu_relax(); | 48 | cpu_relax(); |
@@ -57,22 +57,26 @@ static inline void unlock_cmos(void) | |||
57 | { | 57 | { |
58 | cmos_lock = 0; | 58 | cmos_lock = 0; |
59 | } | 59 | } |
60 | |||
60 | static inline int do_i_have_lock_cmos(void) | 61 | static inline int do_i_have_lock_cmos(void) |
61 | { | 62 | { |
62 | return (cmos_lock >> 8) == (smp_processor_id()+1); | 63 | return (cmos_lock >> 8) == (smp_processor_id() + 1); |
63 | } | 64 | } |
65 | |||
64 | static inline unsigned char current_lock_cmos_reg(void) | 66 | static inline unsigned char current_lock_cmos_reg(void) |
65 | { | 67 | { |
66 | return cmos_lock & 0xff; | 68 | return cmos_lock & 0xff; |
67 | } | 69 | } |
68 | #define lock_cmos_prefix(reg) \ | 70 | |
71 | #define lock_cmos_prefix(reg) \ | ||
69 | do { \ | 72 | do { \ |
70 | unsigned long cmos_flags; \ | 73 | unsigned long cmos_flags; \ |
71 | local_irq_save(cmos_flags); \ | 74 | local_irq_save(cmos_flags); \ |
72 | lock_cmos(reg) | 75 | lock_cmos(reg) |
73 | #define lock_cmos_suffix(reg) \ | 76 | |
74 | unlock_cmos(); \ | 77 | #define lock_cmos_suffix(reg) \ |
75 | local_irq_restore(cmos_flags); \ | 78 | unlock_cmos(); \ |
79 | local_irq_restore(cmos_flags); \ | ||
76 | } while (0) | 80 | } while (0) |
77 | #else | 81 | #else |
78 | #define lock_cmos_prefix(reg) do {} while (0) | 82 | #define lock_cmos_prefix(reg) do {} while (0) |