ptp4l: Read system clock maximum frequency adjustment.
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>master
parent
da347d7a36
commit
f8563452a8
2
clock.c
2
clock.c
|
@ -589,7 +589,7 @@ struct clock *clock_create(int phc_index, struct interface *iface, int count,
|
|||
} else {
|
||||
c->clkid = CLOCK_REALTIME;
|
||||
c->utc_timescale = 1;
|
||||
max_adj = 512000;
|
||||
max_adj = clockadj_get_max_freq(c->clkid);
|
||||
clockadj_set_leap(c->clkid, 0);
|
||||
}
|
||||
c->leap_set = 0;
|
||||
|
|
14
clockadj.c
14
clockadj.c
|
@ -94,3 +94,17 @@ void clockadj_set_leap(clockid_t clkid, int leap)
|
|||
else if (m)
|
||||
pr_notice(m);
|
||||
}
|
||||
|
||||
int clockadj_get_max_freq(clockid_t clkid)
|
||||
{
|
||||
int f = 0;
|
||||
struct timex tx;
|
||||
memset(&tx, 0, sizeof(tx));
|
||||
if (clock_adjtime(clkid, &tx) < 0)
|
||||
pr_err("failed to read out the clock maximum adjustment: %m");
|
||||
else
|
||||
f = tx.tolerance / 65.536;
|
||||
if (!f)
|
||||
f = 500000;
|
||||
return f;
|
||||
}
|
||||
|
|
|
@ -51,4 +51,11 @@ void clockadj_step(clockid_t clkid, int64_t step);
|
|||
* 0 to reset the leap state.
|
||||
*/
|
||||
void clockadj_set_leap(clockid_t clkid, int leap);
|
||||
|
||||
/*
|
||||
* Read clock's maximum frequency adjustment.
|
||||
* @param clkid CLOCK_REALTIME.
|
||||
* @return The maximum frequency adjustment in parts per billion (ppb).
|
||||
*/
|
||||
int clockadj_get_max_freq(clockid_t clkid);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue