diff options
Diffstat (limited to 'arch/x86/kernel/rtc.c')
| -rw-r--r-- | arch/x86/kernel/rtc.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c index dd6f2b71561b..5d465b207e72 100644 --- a/arch/x86/kernel/rtc.c +++ b/arch/x86/kernel/rtc.c | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * RTC related functions | 2 | * RTC related functions |
| 3 | */ | 3 | */ |
| 4 | #include <linux/platform_device.h> | ||
| 5 | #include <linux/mc146818rtc.h> | ||
| 4 | #include <linux/acpi.h> | 6 | #include <linux/acpi.h> |
| 5 | #include <linux/bcd.h> | 7 | #include <linux/bcd.h> |
| 6 | #include <linux/mc146818rtc.h> | ||
| 7 | #include <linux/platform_device.h> | ||
| 8 | #include <linux/pnp.h> | 8 | #include <linux/pnp.h> |
| 9 | 9 | ||
| 10 | #include <asm/time.h> | ||
| 11 | #include <asm/vsyscall.h> | 10 | #include <asm/vsyscall.h> |
| 11 | #include <asm/time.h> | ||
| 12 | 12 | ||
| 13 | #ifdef CONFIG_X86_32 | 13 | #ifdef CONFIG_X86_32 |
| 14 | /* | 14 | /* |
| @@ -16,9 +16,9 @@ | |||
| 16 | * register we are working with. It is required for NMI access to the | 16 | * register we are working with. It is required for NMI access to the |
| 17 | * CMOS/RTC registers. See include/asm-i386/mc146818rtc.h for details. | 17 | * CMOS/RTC registers. See include/asm-i386/mc146818rtc.h for details. |
| 18 | */ | 18 | */ |
| 19 | volatile unsigned long cmos_lock = 0; | 19 | volatile unsigned long cmos_lock; |
| 20 | EXPORT_SYMBOL(cmos_lock); | 20 | EXPORT_SYMBOL(cmos_lock); |
| 21 | #endif | 21 | #endif /* CONFIG_X86_32 */ |
| 22 | 22 | ||
| 23 | /* For two digit years assume time is always after that */ | 23 | /* For two digit years assume time is always after that */ |
| 24 | #define CMOS_YEARS_OFFS 2000 | 24 | #define CMOS_YEARS_OFFS 2000 |
| @@ -38,9 +38,9 @@ EXPORT_SYMBOL(rtc_lock); | |||
| 38 | */ | 38 | */ |
| 39 | int mach_set_rtc_mmss(unsigned long nowtime) | 39 | int mach_set_rtc_mmss(unsigned long nowtime) |
| 40 | { | 40 | { |
| 41 | int retval = 0; | ||
| 42 | int real_seconds, real_minutes, cmos_minutes; | 41 | int real_seconds, real_minutes, cmos_minutes; |
| 43 | unsigned char save_control, save_freq_select; | 42 | unsigned char save_control, save_freq_select; |
| 43 | int retval = 0; | ||
| 44 | 44 | ||
| 45 | /* tell the clock it's being set */ | 45 | /* tell the clock it's being set */ |
| 46 | save_control = CMOS_READ(RTC_CONTROL); | 46 | save_control = CMOS_READ(RTC_CONTROL); |
| @@ -72,8 +72,8 @@ int mach_set_rtc_mmss(unsigned long nowtime) | |||
| 72 | real_seconds = bin2bcd(real_seconds); | 72 | real_seconds = bin2bcd(real_seconds); |
| 73 | real_minutes = bin2bcd(real_minutes); | 73 | real_minutes = bin2bcd(real_minutes); |
| 74 | } | 74 | } |
| 75 | CMOS_WRITE(real_seconds,RTC_SECONDS); | 75 | CMOS_WRITE(real_seconds, RTC_SECONDS); |
| 76 | CMOS_WRITE(real_minutes,RTC_MINUTES); | 76 | CMOS_WRITE(real_minutes, RTC_MINUTES); |
| 77 | } else { | 77 | } else { |
| 78 | printk(KERN_WARNING | 78 | printk(KERN_WARNING |
| 79 | "set_rtc_mmss: can't update from %d to %d\n", | 79 | "set_rtc_mmss: can't update from %d to %d\n", |
| @@ -151,6 +151,7 @@ unsigned char rtc_cmos_read(unsigned char addr) | |||
| 151 | outb(addr, RTC_PORT(0)); | 151 | outb(addr, RTC_PORT(0)); |
| 152 | val = inb(RTC_PORT(1)); | 152 | val = inb(RTC_PORT(1)); |
| 153 | lock_cmos_suffix(addr); | 153 | lock_cmos_suffix(addr); |
| 154 | |||
| 154 | return val; | 155 | return val; |
| 155 | } | 156 | } |
| 156 | EXPORT_SYMBOL(rtc_cmos_read); | 157 | EXPORT_SYMBOL(rtc_cmos_read); |
| @@ -166,8 +167,8 @@ EXPORT_SYMBOL(rtc_cmos_write); | |||
| 166 | 167 | ||
| 167 | static int set_rtc_mmss(unsigned long nowtime) | 168 | static int set_rtc_mmss(unsigned long nowtime) |
| 168 | { | 169 | { |
| 169 | int retval; | ||
| 170 | unsigned long flags; | 170 | unsigned long flags; |
| 171 | int retval; | ||
| 171 | 172 | ||
| 172 | spin_lock_irqsave(&rtc_lock, flags); | 173 | spin_lock_irqsave(&rtc_lock, flags); |
| 173 | retval = set_wallclock(nowtime); | 174 | retval = set_wallclock(nowtime); |
| @@ -242,6 +243,7 @@ static __init int add_rtc_cmos(void) | |||
| 242 | platform_device_register(&rtc_device); | 243 | platform_device_register(&rtc_device); |
| 243 | dev_info(&rtc_device.dev, | 244 | dev_info(&rtc_device.dev, |
| 244 | "registered platform RTC device (no PNP device found)\n"); | 245 | "registered platform RTC device (no PNP device found)\n"); |
| 246 | |||
| 245 | return 0; | 247 | return 0; |
| 246 | } | 248 | } |
| 247 | device_initcall(add_rtc_cmos); | 249 | device_initcall(add_rtc_cmos); |
