Lines Matching refs:vclock
18 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_adjfine() local
25 spin_lock_irqsave(&vclock->lock, flags); in ptp_vclock_adjfine()
26 timecounter_read(&vclock->tc); in ptp_vclock_adjfine()
27 vclock->cc.mult = PTP_VCLOCK_CC_MULT + adj; in ptp_vclock_adjfine()
28 spin_unlock_irqrestore(&vclock->lock, flags); in ptp_vclock_adjfine()
35 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_adjtime() local
38 spin_lock_irqsave(&vclock->lock, flags); in ptp_vclock_adjtime()
39 timecounter_adjtime(&vclock->tc, delta); in ptp_vclock_adjtime()
40 spin_unlock_irqrestore(&vclock->lock, flags); in ptp_vclock_adjtime()
48 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_gettime() local
52 spin_lock_irqsave(&vclock->lock, flags); in ptp_vclock_gettime()
53 ns = timecounter_read(&vclock->tc); in ptp_vclock_gettime()
54 spin_unlock_irqrestore(&vclock->lock, flags); in ptp_vclock_gettime()
63 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_settime() local
67 spin_lock_irqsave(&vclock->lock, flags); in ptp_vclock_settime()
68 timecounter_init(&vclock->tc, &vclock->cc, ns); in ptp_vclock_settime()
69 spin_unlock_irqrestore(&vclock->lock, flags); in ptp_vclock_settime()
76 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_refresh() local
79 ptp_vclock_gettime(&vclock->info, &ts); in ptp_vclock_refresh()
98 struct ptp_vclock *vclock = cc_to_vclock(cc); in ptp_vclock_read() local
99 struct ptp_clock *ptp = vclock->pclock; in ptp_vclock_read()
119 struct ptp_vclock *vclock; in ptp_vclock_register() local
121 vclock = kzalloc(sizeof(*vclock), GFP_KERNEL); in ptp_vclock_register()
122 if (!vclock) in ptp_vclock_register()
125 vclock->pclock = pclock; in ptp_vclock_register()
126 vclock->info = ptp_vclock_info; in ptp_vclock_register()
127 vclock->cc = ptp_vclock_cc; in ptp_vclock_register()
129 snprintf(vclock->info.name, PTP_CLOCK_NAME_LEN, "ptp%d_virt", in ptp_vclock_register()
132 spin_lock_init(&vclock->lock); in ptp_vclock_register()
134 vclock->clock = ptp_clock_register(&vclock->info, &pclock->dev); in ptp_vclock_register()
135 if (IS_ERR_OR_NULL(vclock->clock)) { in ptp_vclock_register()
136 kfree(vclock); in ptp_vclock_register()
140 timecounter_init(&vclock->tc, &vclock->cc, 0); in ptp_vclock_register()
141 ptp_schedule_worker(vclock->clock, PTP_VCLOCK_REFRESH_INTERVAL); in ptp_vclock_register()
143 return vclock; in ptp_vclock_register()
146 void ptp_vclock_unregister(struct ptp_vclock *vclock) in ptp_vclock_unregister() argument
148 ptp_clock_unregister(vclock->clock); in ptp_vclock_unregister()
149 kfree(vclock); in ptp_vclock_unregister()
192 struct ptp_vclock *vclock; in ptp_convert_timestamp() local
209 vclock = info_to_vclock(ptp->info); in ptp_convert_timestamp()
213 spin_lock_irqsave(&vclock->lock, flags); in ptp_convert_timestamp()
214 ns = timecounter_cyc2time(&vclock->tc, ns); in ptp_convert_timestamp()
215 spin_unlock_irqrestore(&vclock->lock, flags); in ptp_convert_timestamp()