diff options
author | Manfred Rudigier <manfred.rudigier@omicron.at> | 2014-03-25 12:24:05 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-26 16:43:36 -0400 |
commit | 271c83de61f2b4c9cf0fbca86ced40084f14c4a5 (patch) | |
tree | adbec04aefa7bee7a0078a790a6ed2af111c086d /Documentation/ptp | |
parent | b620cb3e829f257f96845bd60813a94f598d6dec (diff) |
ptp: Add a command line option in testptp to set a specific PTP time
Signed-off-by: Manfred Rudigier <manfred.rudigier@omicron.at>
Signed-off-by: Christian Riesch <christian.riesch@omicron.at>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/ptp')
-rw-r--r-- | Documentation/ptp/testptp.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/Documentation/ptp/testptp.c b/Documentation/ptp/testptp.c index e9eaee62203..13bddd5427b 100644 --- a/Documentation/ptp/testptp.c +++ b/Documentation/ptp/testptp.c @@ -131,7 +131,8 @@ static void usage(char *progname) " -P val enable or disable (val=1|0) the system clock PPS\n" " -s set the ptp clock time from the system time\n" " -S set the system time from the ptp clock time\n" - " -t val shift the ptp clock time by 'val' seconds\n", + " -t val shift the ptp clock time by 'val' seconds\n" + " -T val set the ptp clock time to 'val' seconds\n", progname); } @@ -172,6 +173,7 @@ int main(int argc, char *argv[]) int perout = -1; int pin_index = -1, pin_func; int pps = -1; + int seconds = 0; int settime = 0; int64_t t1, t2, tp; @@ -179,7 +181,7 @@ int main(int argc, char *argv[]) progname = strrchr(argv[0], '/'); progname = progname ? 1+progname : argv[0]; - while (EOF != (c = getopt(argc, argv, "a:A:cd:e:f:ghi:k:lL:p:P:sSt:v"))) { + while (EOF != (c = getopt(argc, argv, "a:A:cd:e:f:ghi:k:lL:p:P:sSt:T:v"))) { switch (c) { case 'a': oneshot = atoi(optarg); @@ -234,6 +236,10 @@ int main(int argc, char *argv[]) case 't': adjtime = atoi(optarg); break; + case 'T': + settime = 3; + seconds = atoi(optarg); + break; case 'h': usage(progname); return 0; @@ -326,6 +332,16 @@ int main(int argc, char *argv[]) } } + if (settime == 3) { + ts.tv_sec = seconds; + ts.tv_nsec = 0; + if (clock_settime(clkid, &ts)) { + perror("clock_settime"); + } else { + puts("set time okay"); + } + } + if (extts) { memset(&extts_request, 0, sizeof(extts_request)); extts_request.index = index; |