timer: permit runtime decisions that we have no rtc to lock onto
authorAlan Cox <alan@linux.intel.com>
Sun, 8 Jul 2018 00:10:47 +0000 (01:10 +0100)
committerAlan Cox <alan@linux.intel.com>
Sun, 8 Jul 2018 00:10:47 +0000 (01:10 +0100)
Kernel/platform-trs80m1/main.c
Kernel/timer.c

index 549e391..6eac2b6 100644 (file)
@@ -50,8 +50,6 @@ void platform_interrupt(void)
     tty_interrupt();
     kbd_interrupt();
 
-    /* FIXME: do we care about floppy interrupts */
-
     if (irq & 0x40)
       dummy = sdcc_bug_2753(*((volatile uint8_t *)0x37EC));
     if (irq & 0x80) {  /* FIXME??? */
@@ -94,6 +92,9 @@ uint8_t platform_rtc_secs(void)
     /* BCD encoded */
     do {
         sl = rtc_secl;
+        /* RTC may be absent */
+        if (sl == 255)
+          return 255;
         rv = sl + rtc_sech * 10;
     } while (sl != rtc_secl);
     return rv;
index 0033068..43ef777 100644 (file)
@@ -101,7 +101,7 @@ void updatetod(void)
 
        rtcnew = platform_rtc_secs();           /* platform function */
 
-       if (rtcnew == rtcsec)
+       if (rtcnew == rtcsec || rtcnew == 255)
                return;
        slide = rtcnew - rtcsec;        /* Seconds elapsed */
        rtcsec = rtcnew;