]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
refclock_parse.c:
authorFrank Kardel <kardel@ntp.org>
Thu, 22 Jun 2006 19:28:28 +0000 (19:28 +0000)
committerFrank Kardel <kardel@ntp.org>
Thu, 22 Jun 2006 19:28:28 +0000 (19:28 +0000)
  bug 632: update kernel PPS offsets when PPS offset is re-configured

bk: 449aef5cvf9LoNC38IvemgHF6JBXBA

ntpd/refclock_parse.c

index 1ba6685e7c92047e6c88ff355def55f9084d4ac8..0ea4d652e39537174c0b0c990b0a2374c66c806c 100644 (file)
@@ -2720,14 +2720,14 @@ parse_ppsapi(
        } else {
                if (mode1 == PPS_OFFSETCLEAR) 
                        {
-                               parse->ppsparams.clear_offset.tv_sec = parse->ppsphaseadjust;
-                               parse->ppsparams.clear_offset.tv_nsec = 1e9*(parse->ppsphaseadjust - (long)parse->ppsphaseadjust);
+                               parse->ppsparams.clear_offset.tv_sec = -parse->ppsphaseadjust;
+                               parse->ppsparams.clear_offset.tv_nsec = -1e9*(parse->ppsphaseadjust - (long)parse->ppsphaseadjust);
                        }
          
                if (mode1 == PPS_OFFSETASSERT)
                        {
-                               parse->ppsparams.assert_offset.tv_sec = parse->ppsphaseadjust;
-                               parse->ppsparams.assert_offset.tv_nsec = 1e9*(parse->ppsphaseadjust - (long)parse->ppsphaseadjust);
+                               parse->ppsparams.assert_offset.tv_sec = -parse->ppsphaseadjust;
+                               parse->ppsparams.assert_offset.tv_nsec = -1e9*(parse->ppsphaseadjust - (long)parse->ppsphaseadjust);
                        }
        }
        
@@ -3177,6 +3177,12 @@ parse_ctl(
                      msyslog(LOG_INFO, "PARSE receiver #%d: new PPS phase adjustment %.6f s",
                          CLK_UNIT(parse->peer),
                              parse->ppsphaseadjust);
+#if defined(HAVE_PPSAPI)
+                     if (CLK_PPS(parse->peer))
+                     {
+                             parse_ppsapi(parse);
+                     }
+#endif
                    }
                }
        }