git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
mips
/
ddb5xxx
/
common
/
rtc_ds1386.c
diff --git
a/arch/mips/ddb5xxx/common/rtc_ds1386.c
b/arch/mips/ddb5xxx/common/rtc_ds1386.c
index
f5b1150
..
5dc34da
100644
(file)
--- a/
arch/mips/ddb5xxx/common/rtc_ds1386.c
+++ b/
arch/mips/ddb5xxx/common/rtc_ds1386.c
@@
-41,7
+41,9
@@
rtc_ds1386_get_time(void)
u8 byte;
u8 temp;
unsigned int year, month, day, hour, minute, second;
u8 byte;
u8 temp;
unsigned int year, month, day, hour, minute, second;
+ unsigned long flags;
+ spin_lock_irqsave(&rtc_lock, flags);
/* let us freeze external registers */
byte = READ_RTC(0xB);
byte &= 0x3f;
/* let us freeze external registers */
byte = READ_RTC(0xB);
byte &= 0x3f;
@@
-60,6
+62,7
@@
rtc_ds1386_get_time(void)
/* enable time transfer */
byte |= 0x80;
WRITE_RTC(0xB, byte);
/* enable time transfer */
byte |= 0x80;
WRITE_RTC(0xB, byte);
+ spin_unlock_irqrestore(&rtc_lock, flags);
/* calc hour */
if (temp & 0x40) {
/* calc hour */
if (temp & 0x40) {
@@
-81,7
+84,9
@@
rtc_ds1386_set_time(unsigned long t)
u8 byte;
u8 temp;
u8 year, month, day, hour, minute, second;
u8 byte;
u8 temp;
u8 year, month, day, hour, minute, second;
+ unsigned long flags;
+ spin_lock_irqsave(&rtc_lock, flags);
/* let us freeze external registers */
byte = READ_RTC(0xB);
byte &= 0x3f;
/* let us freeze external registers */
byte = READ_RTC(0xB);
byte &= 0x3f;
@@
-133,6
+138,7
@@
rtc_ds1386_set_time(unsigned long t)
if (second != READ_RTC(0x1)) {
WRITE_RTC(0x1, second);
}
if (second != READ_RTC(0x1)) {
WRITE_RTC(0x1, second);
}
+ spin_unlock_irqrestore(&rtc_lock, flags);
return 0;
}
return 0;
}
@@
-159,6
+165,6
@@
rtc_ds1386_init(unsigned long base)
WRITE_RTC(0xB, byte);
/* set the function pointers */
WRITE_RTC(0xB, byte);
/* set the function pointers */
- rtc_get_time = rtc_ds1386_get_time;
- rtc_set_time = rtc_ds1386_set_time;
+ rtc_
mips_
get_time = rtc_ds1386_get_time;
+ rtc_
mips_
set_time = rtc_ds1386_set_time;
}
}