mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
sh: mach-sh03: Give the sh03 rtc its own spinlock.
This converts the sh03 rtc code off of using the global rtc_lock and on to its own spinlock. There are no other possible users of the rtc_lock, so serializing with it is not necessary. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
6459d7bb72
commit
cd1408f22d
1 changed files with 5 additions and 5 deletions
|
@ -35,13 +35,13 @@
|
||||||
#define RTC_BUSY 1
|
#define RTC_BUSY 1
|
||||||
#define RTC_STOP 2
|
#define RTC_STOP 2
|
||||||
|
|
||||||
extern spinlock_t rtc_lock;
|
static DEFINE_SPINLOCK(sh03_rtc_lock);
|
||||||
|
|
||||||
unsigned long get_cmos_time(void)
|
unsigned long get_cmos_time(void)
|
||||||
{
|
{
|
||||||
unsigned int year, mon, day, hour, min, sec;
|
unsigned int year, mon, day, hour, min, sec;
|
||||||
|
|
||||||
spin_lock(&rtc_lock);
|
spin_lock(&sh03_rtc_lock);
|
||||||
again:
|
again:
|
||||||
do {
|
do {
|
||||||
sec = (ctrl_inb(RTC_SEC1) & 0xf) + (ctrl_inb(RTC_SEC10) & 0x7) * 10;
|
sec = (ctrl_inb(RTC_SEC1) & 0xf) + (ctrl_inb(RTC_SEC10) & 0x7) * 10;
|
||||||
|
@ -73,7 +73,7 @@ unsigned long get_cmos_time(void)
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock(&rtc_lock);
|
spin_unlock(&sh03_rtc_lock);
|
||||||
return mktime(year, mon, day, hour, min, sec);
|
return mktime(year, mon, day, hour, min, sec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ static int set_rtc_mmss(unsigned long nowtime)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* gets recalled with irq locally disabled */
|
/* gets recalled with irq locally disabled */
|
||||||
spin_lock(&rtc_lock);
|
spin_lock(&sh03_rtc_lock);
|
||||||
for (i = 0 ; i < 1000000 ; i++) /* may take up to 1 second... */
|
for (i = 0 ; i < 1000000 ; i++) /* may take up to 1 second... */
|
||||||
if (!(ctrl_inb(RTC_CTL) & RTC_BUSY))
|
if (!(ctrl_inb(RTC_CTL) & RTC_BUSY))
|
||||||
break;
|
break;
|
||||||
|
@ -113,7 +113,7 @@ static int set_rtc_mmss(unsigned long nowtime)
|
||||||
cmos_minutes, real_minutes);
|
cmos_minutes, real_minutes);
|
||||||
retval = -1;
|
retval = -1;
|
||||||
}
|
}
|
||||||
spin_unlock(&rtc_lock);
|
spin_unlock(&sh03_rtc_lock);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue