Lines Matching refs:ptp

109 	struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock);  in ptp_clock_settime()  local
112 return ptp->info->settime64(ptp->info, &ts); in ptp_clock_settime()
117 struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); in ptp_clock_gettime() local
121 err = ptp->info->gettime64(ptp->info, &ts); in ptp_clock_gettime()
129 struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); in ptp_clock_adjtime() local
133 ops = ptp->info; in ptp_clock_adjtime()
157 ptp->dialed_frequency = tx->freq; in ptp_clock_adjtime()
159 tx->freq = ptp->dialed_frequency; in ptp_clock_adjtime()
180 struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); in delete_ptp_clock() local
182 mutex_destroy(&ptp->tsevq_mux); in delete_ptp_clock()
183 mutex_destroy(&ptp->pincfg_mux); in delete_ptp_clock()
184 ida_simple_remove(&ptp_clocks_map, ptp->index); in delete_ptp_clock()
185 kfree(ptp); in delete_ptp_clock()
193 struct ptp_clock *ptp; in ptp_clock_register() local
201 ptp = kzalloc(sizeof(struct ptp_clock), GFP_KERNEL); in ptp_clock_register()
202 if (ptp == NULL) in ptp_clock_register()
211 ptp->clock.ops = ptp_clock_ops; in ptp_clock_register()
212 ptp->clock.release = delete_ptp_clock; in ptp_clock_register()
213 ptp->info = info; in ptp_clock_register()
214 ptp->devid = MKDEV(major, index); in ptp_clock_register()
215 ptp->index = index; in ptp_clock_register()
216 spin_lock_init(&ptp->tsevq.lock); in ptp_clock_register()
217 mutex_init(&ptp->tsevq_mux); in ptp_clock_register()
218 mutex_init(&ptp->pincfg_mux); in ptp_clock_register()
219 init_waitqueue_head(&ptp->tsev_wq); in ptp_clock_register()
222 ptp->dev = device_create(ptp_class, parent, ptp->devid, ptp, in ptp_clock_register()
223 "ptp%d", ptp->index); in ptp_clock_register()
224 if (IS_ERR(ptp->dev)) in ptp_clock_register()
227 dev_set_drvdata(ptp->dev, ptp); in ptp_clock_register()
229 err = ptp_populate_sysfs(ptp); in ptp_clock_register()
240 ptp->pps_source = pps_register_source(&pps, PTP_PPS_DEFAULTS); in ptp_clock_register()
241 if (!ptp->pps_source) { in ptp_clock_register()
248 err = posix_clock_register(&ptp->clock, ptp->devid); in ptp_clock_register()
254 return ptp; in ptp_clock_register()
257 if (ptp->pps_source) in ptp_clock_register()
258 pps_unregister_source(ptp->pps_source); in ptp_clock_register()
260 ptp_cleanup_sysfs(ptp); in ptp_clock_register()
262 device_destroy(ptp_class, ptp->devid); in ptp_clock_register()
264 mutex_destroy(&ptp->tsevq_mux); in ptp_clock_register()
265 mutex_destroy(&ptp->pincfg_mux); in ptp_clock_register()
267 kfree(ptp); in ptp_clock_register()
273 int ptp_clock_unregister(struct ptp_clock *ptp) in ptp_clock_unregister() argument
275 ptp->defunct = 1; in ptp_clock_unregister()
276 wake_up_interruptible(&ptp->tsev_wq); in ptp_clock_unregister()
279 if (ptp->pps_source) in ptp_clock_unregister()
280 pps_unregister_source(ptp->pps_source); in ptp_clock_unregister()
281 ptp_cleanup_sysfs(ptp); in ptp_clock_unregister()
282 device_destroy(ptp_class, ptp->devid); in ptp_clock_unregister()
284 posix_clock_unregister(&ptp->clock); in ptp_clock_unregister()
289 void ptp_clock_event(struct ptp_clock *ptp, struct ptp_clock_event *event) in ptp_clock_event() argument
299 enqueue_external_timestamp(&ptp->tsevq, event); in ptp_clock_event()
300 wake_up_interruptible(&ptp->tsev_wq); in ptp_clock_event()
305 pps_event(ptp->pps_source, &evt, PTP_PPS_EVENT, NULL); in ptp_clock_event()
309 pps_event(ptp->pps_source, &event->pps_times, in ptp_clock_event()
316 int ptp_clock_index(struct ptp_clock *ptp) in ptp_clock_index() argument
318 return ptp->index; in ptp_clock_index()
322 int ptp_find_pin(struct ptp_clock *ptp, in ptp_find_pin() argument
328 mutex_lock(&ptp->pincfg_mux); in ptp_find_pin()
329 for (i = 0; i < ptp->info->n_pins; i++) { in ptp_find_pin()
330 if (ptp->info->pin_config[i].func == func && in ptp_find_pin()
331 ptp->info->pin_config[i].chan == chan) { in ptp_find_pin()
332 pin = &ptp->info->pin_config[i]; in ptp_find_pin()
336 mutex_unlock(&ptp->pincfg_mux); in ptp_find_pin()