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) |
