diff --git a/userspace/libswitchhw/pps_gen.c b/userspace/libswitchhw/pps_gen.c index 102f63c388767da1414edf6708660be0a002db04..2c96217fb9729176909ad67d1a0add39dbe084cc 100644 --- a/userspace/libswitchhw/pps_gen.c +++ b/userspace/libswitchhw/pps_gen.c @@ -54,7 +54,7 @@ int shw_pps_gen_adjust(int counter, int64_t how_much) { ppsg_write(ADJ_UTCLO, 0); ppsg_write(ADJ_UTCHI, 0); - ppsg_write(ADJ_NSEC, how_much); + ppsg_write(ADJ_NSEC, (int32_t) ((int64_t) how_much * 1000LL / (int64_t)REF_CLOCK_PERIOD_PS)); } else { ppsg_write(ADJ_UTCLO, (uint32_t ) (how_much & 0xffffffffLL)); ppsg_write(ADJ_UTCHI, (uint32_t ) (how_much >> 32) & 0xff);