Date: Thu, 7 Jul 2022 17:25:05 +0200 From: Sebastian Huber <sebastian.huber@embedded-brains.de> To: freebsd-hackers@freebsd.org Subject: [PATCH 5/6] pps: Simplify the nsec calculation in pps_event() Message-ID: <20220707152506.55626-6-sebastian.huber@embedded-brains.de> In-Reply-To: <20220707152506.55626-1-sebastian.huber@embedded-brains.de> References: <20220707152506.55626-1-sebastian.huber@embedded-brains.de>
next in thread | previous in thread | raw e-mail | index | archive | help
--- sys/kern/kern_tc.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/sys/kern/kern_tc.c b/sys/kern/kern_tc.c index be564e4347f8..f29dd9b8e7f2 100644 --- a/sys/kern/kern_tc.c +++ b/sys/kern/kern_tc.c @@ -1781,7 +1781,7 @@ pps_event(struct pps_state *pps, int event) struct timecounter *captc; uint64_t capth_scale; struct bintime bt; - struct timespec ts, *tsp, *osp; + struct timespec *tsp, *osp; u_int tcount, *pcount; int foff; pps_seq_t *pseq; @@ -1881,7 +1881,7 @@ pps_event(struct pps_state *pps, int event) =20 #ifdef PPS_SYNC if (fhard) { - uint64_t scale; + uint64_t nsec; =20 /* * Feed the NTP PLL/FLL. @@ -1891,14 +1891,10 @@ pps_event(struct pps_state *pps, int event) tcount =3D pps->capcount - pps->ppscount[2]; pps->ppscount[2] =3D pps->capcount; tcount &=3D captc->tc_counter_mask; - scale =3D (uint64_t)1 << 63; - scale /=3D captc->tc_frequency; - scale *=3D 2; - bt.sec =3D 0; - bt.frac =3D 0; - bintime_addx(&bt, scale * tcount); - bintime2timespec(&bt, &ts); - hardpps(tsp, ts.tv_nsec + 1000000000 * ts.tv_sec); + nsec =3D 1000000000; + nsec *=3D tcount; + nsec /=3D captc->tc_frequency; + hardpps(tsp, (long)nsec); } #endif =20 --=20 2.35.3
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20220707152506.55626-6-sebastian.huber>