From f6c0f687e90b7a3a3b71daf344d784cd0dc5ac16 Mon Sep 17 00:00:00 2001 From: Matt Mackall Date: Tue, 28 Mar 2006 01:56:05 -0800 Subject: [PATCH] --- yaml --- r: 24447 b: refs/heads/master c: da2468b6a81884a696fd6c7ab66dcc62d7233d32 h: refs/heads/master i: 24445: ad4c5ad4a9ce45df988f6f7b0022140fd633d1d8 24443: 9f9f68c8424ff0587acc6711ef2a9717d1282320 24439: d90e9809be304adbdd296d72577398369c7fd878 24431: f5ecc2c95cc9b166b12330f241d2dbfd68ea7b8b 24415: fafdff7e682036c20a6a2018fb89e8174c2e3209 24383: 570ed27c6181c68502f142bc64cd24f5201bc002 24319: 41d7a060eebaa89e18b38d53ba0e069f71c1fa43 v: v3 --- [refs] | 2 +- trunk/include/asm-mips/mc146818-time.h | 33 ++------------------------ 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/[refs] b/[refs] index f5fa9a46296b..979245abcc6e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4af6ec46c696a57ba9b1c1abffcdca14d6ab5410 +refs/heads/master: da2468b6a81884a696fd6c7ab66dcc62d7233d32 diff --git a/trunk/include/asm-mips/mc146818-time.h b/trunk/include/asm-mips/mc146818-time.h index 47214861093b..41ac8d363c67 100644 --- a/trunk/include/asm-mips/mc146818-time.h +++ b/trunk/include/asm-mips/mc146818-time.h @@ -86,43 +86,14 @@ static inline int mc146818_set_rtc_mmss(unsigned long nowtime) return retval; } -/* - * Returns true if a clock update is in progress - */ -static inline unsigned char rtc_is_updating(void) -{ - unsigned char uip; - unsigned long flags; - - spin_lock_irqsave(&rtc_lock, flags); - uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP); - spin_unlock_irqrestore(&rtc_lock, flags); - return uip; -} - static inline unsigned long mc146818_get_cmos_time(void) { unsigned int year, mon, day, hour, min, sec; - int i; unsigned long flags; - /* - * The Linux interpretation of the CMOS clock register contents: - * When the Update-In-Progress (UIP) flag goes from 1 to 0, the - * RTC registers show the second which has precisely just started. - * Let's hope other operating systems interpret the RTC the same way. - */ - - /* read RTC exactly on falling edge of update flag */ - for (i = 0 ; i < 1000000 ; i++) /* may take up to 1 second... */ - if (rtc_is_updating()) - break; - for (i = 0 ; i < 1000000 ; i++) /* must try at least 2.228 ms */ - if (!rtc_is_updating()) - break; - spin_lock_irqsave(&rtc_lock, flags); - do { /* Isn't this overkill ? UIP above should guarantee consistency */ + + do { sec = CMOS_READ(RTC_SECONDS); min = CMOS_READ(RTC_MINUTES); hour = CMOS_READ(RTC_HOURS);