diff options
author | Ingo Molnar <mingo@elte.hu> | 2011-02-15 05:47:36 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-02-15 05:47:36 +0100 |
commit | ccd982932ffde2a920383299b5df164a79a67faa (patch) | |
tree | fe84be5df4f53e6c8048597f96c9bd8c533e3941 /drivers/rtc | |
parent | ba085fe1a018ac816a49794533b403c8663609d6 (diff) | |
parent | 168202c7bf89d7a2abaf8deaf4bbed18a1f7b3a3 (diff) |
Merge branch 'x86/platform' into auto-latest
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-mrst.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-mrst.c b/drivers/rtc/rtc-mrst.c index bcd0cf63eb16..28e02e7580f4 100644 --- a/drivers/rtc/rtc-mrst.c +++ b/drivers/rtc/rtc-mrst.c @@ -62,6 +62,17 @@ static inline int is_intr(u8 rtc_intr) return rtc_intr & RTC_IRQMASK; } +static inline unsigned char vrtc_is_updating(void) +{ + unsigned char uip; + unsigned long flags; + + spin_lock_irqsave(&rtc_lock, flags); + uip = (vrtc_cmos_read(RTC_FREQ_SELECT) & RTC_UIP); + spin_unlock_irqrestore(&rtc_lock, flags); + return uip; +} + /* * rtc_time's year contains the increment over 1900, but vRTC's YEAR * register can't be programmed to value larger than 0x64, so vRTC @@ -76,7 +87,7 @@ static int mrst_read_time(struct device *dev, struct rtc_time *time) { unsigned long flags; - if (rtc_is_updating()) + if (vrtc_is_updating()) mdelay(20); spin_lock_irqsave(&rtc_lock, flags); |