Lines Matching +full:max +full:- +full:adj
1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Mock-up PTP Hardware Clock driver for virtual network devices
15 /* Clamp scaled_ppm between -2,097,152,000 and 2,097,152,000,
16 * and thus "adj" between -68,719,476 and 68,719,476
29 * 64-bit overflow during the multiplication with cc->mult, given the max "adj"
52 s64 adj; in mock_phc_adjfine() local
54 adj = (s64)scaled_ppm << MOCK_PHC_FADJ_SHIFT; in mock_phc_adjfine()
55 adj = div_s64(adj, MOCK_PHC_FADJ_DENOMINATOR); in mock_phc_adjfine()
57 spin_lock(&phc->lock); in mock_phc_adjfine()
58 timecounter_read(&phc->tc); in mock_phc_adjfine()
59 phc->cc.mult = MOCK_PHC_CC_MULT + adj; in mock_phc_adjfine()
60 spin_unlock(&phc->lock); in mock_phc_adjfine()
69 spin_lock(&phc->lock); in mock_phc_adjtime()
70 timecounter_adjtime(&phc->tc, delta); in mock_phc_adjtime()
71 spin_unlock(&phc->lock); in mock_phc_adjtime()
82 spin_lock(&phc->lock); in mock_phc_settime64()
83 timecounter_init(&phc->tc, &phc->cc, ns); in mock_phc_settime64()
84 spin_unlock(&phc->lock); in mock_phc_settime64()
94 spin_lock(&phc->lock); in mock_phc_gettime64()
95 ns = timecounter_read(&phc->tc); in mock_phc_gettime64()
96 spin_unlock(&phc->lock); in mock_phc_gettime64()
114 return ptp_clock_index(phc->clock); in mock_phc_index()
125 err = -ENOMEM; in mock_phc_create()
129 phc->info = (struct ptp_clock_info) { in mock_phc_create()
131 .name = "Mock-up PTP clock", in mock_phc_create()
140 phc->cc = (struct cyclecounter) { in mock_phc_create()
147 spin_lock_init(&phc->lock); in mock_phc_create()
148 timecounter_init(&phc->tc, &phc->cc, 0); in mock_phc_create()
150 phc->clock = ptp_clock_register(&phc->info, dev); in mock_phc_create()
151 if (IS_ERR(phc->clock)) { in mock_phc_create()
152 err = PTR_ERR(phc->clock); in mock_phc_create()
156 ptp_schedule_worker(phc->clock, MOCK_PHC_REFRESH_INTERVAL); in mock_phc_create()
169 ptp_clock_unregister(phc->clock); in mock_phc_destroy()
174 MODULE_DESCRIPTION("Mock-up PTP Hardware Clock driver");