diff options
Diffstat (limited to 'arch/sparc64/kernel/time.c')
-rw-r--r-- | arch/sparc64/kernel/time.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index 7d61f1bfd3d3..e55b5c6ece02 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -641,23 +641,8 @@ static void __init set_system_time(void) | |||
641 | mon = MSTK_REG_MONTH(mregs); | 641 | mon = MSTK_REG_MONTH(mregs); |
642 | year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) ); | 642 | year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) ); |
643 | } else { | 643 | } else { |
644 | int i; | ||
645 | |||
646 | /* Dallas 12887 RTC chip. */ | 644 | /* Dallas 12887 RTC chip. */ |
647 | 645 | ||
648 | /* Stolen from arch/i386/kernel/time.c, see there for | ||
649 | * credits and descriptive comments. | ||
650 | */ | ||
651 | for (i = 0; i < 1000000; i++) { | ||
652 | if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) | ||
653 | break; | ||
654 | udelay(10); | ||
655 | } | ||
656 | for (i = 0; i < 1000000; i++) { | ||
657 | if (!(CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP)) | ||
658 | break; | ||
659 | udelay(10); | ||
660 | } | ||
661 | do { | 646 | do { |
662 | sec = CMOS_READ(RTC_SECONDS); | 647 | sec = CMOS_READ(RTC_SECONDS); |
663 | min = CMOS_READ(RTC_MINUTES); | 648 | min = CMOS_READ(RTC_MINUTES); |
@@ -666,6 +651,7 @@ static void __init set_system_time(void) | |||
666 | mon = CMOS_READ(RTC_MONTH); | 651 | mon = CMOS_READ(RTC_MONTH); |
667 | year = CMOS_READ(RTC_YEAR); | 652 | year = CMOS_READ(RTC_YEAR); |
668 | } while (sec != CMOS_READ(RTC_SECONDS)); | 653 | } while (sec != CMOS_READ(RTC_SECONDS)); |
654 | |||
669 | if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { | 655 | if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { |
670 | BCD_TO_BIN(sec); | 656 | BCD_TO_BIN(sec); |
671 | BCD_TO_BIN(min); | 657 | BCD_TO_BIN(min); |