We tend to assume the RTC clock is BCD, so print a warning
if it claims to be binary.

Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>

Index: linux/arch/x86/kernel/rtc.c
===================================================================
--- linux.orig/arch/x86/kernel/rtc.c
+++ linux/arch/x86/kernel/rtc.c
@@ -94,6 +94,8 @@ int mach_set_rtc_mmss(unsigned long nowt
 
 unsigned long mach_get_cmos_time(void)
 {
+       unsigned status;
+       static int warned;
        unsigned int year, mon, day, hour, min, sec, century = 0;
 
        /*
@@ -119,7 +121,13 @@ unsigned long mach_get_cmos_time(void)
                century = CMOS_READ(acpi_gbl_FADT.century);
 #endif
 
-       if (RTC_ALWAYS_BCD || !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY)) {
+       status = CMOS_READ(RTC_CONTROL);
+       if (RTC_ALWAYS_BCD && (status & RTC_DM_BINARY) && !warned) {
+               printk(KERN_INFO "RTC clock reports binary. Ignored\n");
+               warned = 1;
+       }
+
+       if (RTC_ALWAYS_BCD || !(status & RTC_DM_BINARY)) {
                BCD_TO_BIN(sec);
                BCD_TO_BIN(min);
                BCD_TO_BIN(hour);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to