/openbmc/linux/drivers/net/ethernet/marvell/octeontx2/af/ |
H A D | ptp.c | 84 static bool is_ptp_dev_cn10ka(struct ptp *ptp) in is_ptp_dev_cn10ka() argument 89 static bool cn10k_ptp_errata(struct ptp *ptp) in cn10k_ptp_errata() argument 92 (is_rev_A0(ptp) || is_rev_A1(ptp))) in cn10k_ptp_errata() 100 struct ptp *ptp = rvu->ptp; in is_tstmp_atomic_update_supported() local 109 (is_rev_A0(ptp) || is_rev_A1(ptp))) in is_tstmp_atomic_update_supported() 117 struct ptp *ptp = container_of(hrtimer, struct ptp, hrtimer); in ptp_reset_thresh() local 230 struct ptp *ptp = first_ptp_block; in ptp_get() local 244 void ptp_put(struct ptp *ptp) in ptp_put() argument 361 *clk = ptp->read_ptp_tstmp(ptp); in ptp_get_clock() 368 struct ptp *ptp = rvu->ptp; in ptp_start() local [all …]
|
H A D | ptp.h | 15 struct ptp { struct 18 u64 (*read_ptp_tstmp)(struct ptp *ptp); argument 27 struct ptp *ptp_get(void); argument 28 void ptp_put(struct ptp *ptp);
|
/openbmc/linux/drivers/net/ethernet/qlogic/qede/ |
H A D | qede_ptp.c | 115 timecounter_init(&ptp->tc, &ptp->cc, ns); in qede_ptp_settime() 206 struct qede_ptp *ptp = edev->ptp; in qede_ptp_cfg_filters() local 299 ptp = edev->ptp; in qede_ptp_hw_ts() 326 struct qede_ptp *ptp = edev->ptp; in qede_ptp_get_ts_info() local 372 ptp = edev->ptp; in qede_ptp_disable() 405 ptp = edev->ptp; in qede_ptp_init() 422 memset(&ptp->cc, 0, sizeof(ptp->cc)); in qede_ptp_init() 445 ptp->ops = edev->ops->ptp; in qede_ptp_enable() 452 edev->ptp = ptp; in qede_ptp_enable() 496 ptp = edev->ptp; in qede_ptp_tx_ts() [all …]
|
/openbmc/linux/drivers/ptp/ |
H A D | ptp_clock.c | 86 return ptp->info->settime64(ptp->info, tp); in ptp_clock_settime() 95 err = ptp->info->gettimex64(ptp->info, tp, NULL); in ptp_clock_gettime() 97 err = ptp->info->gettime64(ptp->info, tp); in ptp_clock_gettime() 180 kfree(ptp); in ptp_clock_release() 247 ptp->info->getcyclesx64 = ptp->info->gettimex64; in ptp_clock_register() 296 ptp->pps_source->lookup_cookie = ptp; in ptp_clock_register() 301 ptp->dev.devt = ptp->devid; in ptp_clock_register() 304 ptp->dev.groups = ptp->pin_attr_groups; in ptp_clock_register() 306 dev_set_drvdata(&ptp->dev, ptp); in ptp_clock_register() 307 dev_set_name(&ptp->dev, "ptp%d", ptp->index); in ptp_clock_register() [all …]
|
H A D | ptp_sysfs.c | 28 ptp->info->getmaxphase(ptp->info)); in max_phase_adjustment_show() 228 *(ptp->vclock_index + ptp->n_vclocks + i) = in n_vclocks_store() 243 *(ptp->vclock_index + ptp->n_vclocks - i) = -1; in n_vclocks_store() 247 if (!ptp->has_cycles) { in n_vclocks_store() 254 ptp->n_vclocks = num; in n_vclocks_store() 444 ptp->pin_dev_attr = kcalloc(n_pins, sizeof(*ptp->pin_dev_attr), in ptp_populate_pin_groups() 449 ptp->pin_attr = kcalloc(1 + n_pins, sizeof(*ptp->pin_attr), GFP_KERNEL); in ptp_populate_pin_groups() 450 if (!ptp->pin_attr) in ptp_populate_pin_groups() 464 ptp->pin_attr_group.attrs = ptp->pin_attr; in ptp_populate_pin_groups() 466 ptp->pin_attr_groups[0] = &ptp->pin_attr_group; in ptp_populate_pin_groups() [all …]
|
H A D | ptp_chardev.c | 137 caps.pps = ptp->info->pps; in ptp_ioctl() 138 caps.n_pins = ptp->info->n_pins; in ptp_ioctl() 143 caps.max_phase_adj = ptp->info->getmaxphase(ptp->info); in ptp_ioctl() 186 mutex_unlock(&ptp->pincfg_mux); in ptp_ioctl() 254 mutex_unlock(&ptp->pincfg_mux); in ptp_ioctl() 277 err = ptp->info->getcrosststamp(ptp->info, &xtstamp); in ptp_ioctl() 298 if (!ptp->info->gettimex64) { in ptp_ioctl() 314 err = ptp->info->gettimex64(ptp->info, &ts, &sts); in ptp_ioctl() 470 mutex_unlock(&ptp->tsevq_mux); in ptp_read() 474 if (ptp->defunct) { in ptp_read() [all …]
|
H A D | ptp_vclock.c | 45 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_adjfine() 62 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_adjtime() 75 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_gettime() 91 struct ptp_vclock *vclock = info_to_vclock(ptp); in ptp_vclock_gettimex() 170 struct ptp_clock *ptp = vclock->pclock; in ptp_vclock_read() local 173 ptp->info->getcycles64(ptp->info, &ts); in ptp_vclock_read() 236 struct ptp_clock *ptp; in ptp_get_vclocks_index() local 248 ptp = dev_get_drvdata(dev); in ptp_get_vclocks_index() 259 memcpy(*vclock_index, ptp->vclock_index, sizeof(int) * ptp->n_vclocks); in ptp_get_vclocks_index() 260 num = ptp->n_vclocks; in ptp_get_vclocks_index() [all …]
|
H A D | ptp_private.h | 90 static inline bool ptp_vclock_in_use(struct ptp_clock *ptp) in ptp_vclock_in_use() argument 94 if (mutex_lock_interruptible(&ptp->n_vclocks_mux)) in ptp_vclock_in_use() 97 if (!ptp->is_virtual_clock && ptp->n_vclocks) in ptp_vclock_in_use() 100 mutex_unlock(&ptp->n_vclocks_mux); in ptp_vclock_in_use() 106 static inline bool ptp_clock_freerun(struct ptp_clock *ptp) in ptp_clock_freerun() argument 108 if (ptp->has_cycles) in ptp_clock_freerun() 111 return ptp_vclock_in_use(ptp); in ptp_clock_freerun() 121 int ptp_set_pinfunc(struct ptp_clock *ptp, unsigned int pin, 141 int ptp_populate_pin_groups(struct ptp_clock *ptp); 142 void ptp_cleanup_pin_groups(struct ptp_clock *ptp);
|
H A D | Makefile | 6 ptp-y := ptp_clock.o ptp_chardev.o ptp_sysfs.o ptp_vclock.o 9 obj-$(CONFIG_PTP_1588_CLOCK) += ptp.o 14 obj-$(CONFIG_PTP_1588_CLOCK_QORIQ) += ptp-qoriq.o 15 ptp-qoriq-y += ptp_qoriq.o 16 ptp-qoriq-$(CONFIG_DEBUG_FS) += ptp_qoriq_debugfs.o
|
/openbmc/linux/drivers/net/ethernet/broadcom/bnxt/ |
H A D | bnxt_ptp.c | 70 timecounter_init(&ptp->tc, &ptp->cc, ns); in bnxt_ptp_settime() 104 if (!ptp) in bnxt_ptp_get_current_time() 107 WRITE_ONCE(ptp->old_time, ptp->current_time); in bnxt_ptp_get_current_time() 167 WRITE_ONCE(ptp->old_time, ptp->current_time); in bnxt_ptp_update_current_time() 327 if (!ptp || !ptp->tstamp_filters) in bnxt_ptp_cfg_tstamp_filters() 749 BNXT_READ_TIME64(ptp, time, ptp->old_time); in bnxt_get_rx_ts_p5() 860 memset(&ptp->cc, 0, sizeof(ptp->cc)); in bnxt_ptp_timecounter_init() 867 ptp->cmult = ptp->cc.mult; in bnxt_ptp_timecounter_init() 881 timecounter_init(&ptp->tc, &ptp->cc, ns); in bnxt_ptp_rtc_timecounter_init() 883 ptp->tc.cycle_last = ns & ptp->cc.mask; in bnxt_ptp_rtc_timecounter_init() [all …]
|
/openbmc/linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
H A D | otx2_ptp.c | 19 if (!ptp->nic) in is_tstmp_atomic_update_supported() 55 if (!ptp->nic) in otx2_ptp_hw_adjtime() 78 if (!ptp->nic) in otx2_ptp_get_clock() 122 if (!ptp->nic) in otx2_ptp_hw_settime() 148 if (!ptp->nic) in otx2_ptp_adjfine() 165 if (!ptp->nic) in ptp_set_thresh() 182 if (!ptp->nic) in ptp_extts_on() 332 ptp->tstamp = ptp->ptp_tstamp2nsec(&ptp->time_counter, tstamp); in otx2_sync_tstamp() 474 struct otx2_ptp *ptp = pfvf->ptp; in otx2_ptp_destroy() local 476 if (!ptp) in otx2_ptp_destroy() [all …]
|
/openbmc/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/ |
H A D | hclge_ptp.c | 10 struct hclge_ptp *ptp = hdev->ptp; in hclge_ptp_get_cycle() local 12 ptp->cycle.quo = readl(hdev->ptp->io_base + HCLGE_PTP_CYCLE_QUO_REG) & in hclge_ptp_get_cycle() 59 struct hclge_ptp *ptp = hdev->ptp; in hclge_ptp_set_tx_info() local 69 ptp->tx_cnt++; in hclge_ptp_set_tx_info() 86 hdev->ptp->last_tx_seqid = readl(hdev->ptp->io_base + in hclge_ptp_clean_tx_hwts() 427 if (!ptp) in hclge_ptp_create_clock() 431 snprintf(ptp->info.name, sizeof(ptp->info.name), "%s", in hclge_ptp_create_clock() 447 ptp->info.n_alarm, PTR_ERR(ptp->clock)); in hclge_ptp_create_clock() 458 hdev->ptp = ptp; in hclge_ptp_create_clock() 530 struct hclge_ptp *ptp = hdev->ptp; in hclge_ptp_uninit() local [all …]
|
/openbmc/linux/drivers/net/ethernet/microchip/ |
H A D | lan743x_ptp.c | 81 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_tx_ts_enqueue_ts() local 98 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_tx_ts_complete() local 159 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_reserve_event_ch() local 178 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_release_event_ch() local 202 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_led_mux_enable() local 219 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_led_mux_save() local 433 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_perout_off() local 463 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_perout() local 654 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_io_perout_off() local 706 struct lan743x_ptp *ptp = &adapter->ptp; in lan743x_ptp_io_perout() local [all …]
|
/openbmc/linux/drivers/net/ethernet/sfc/siena/ |
H A D | ptp.c | 957 ptp->nic_to_kernel_time(0, ptp->timeset[i].wait, 0)); in efx_ptp_process_times() 1279 if (!ptp->channel || ptp->rxfilter_installed) in efx_ptp_insert_multicast_filters() 1483 list_add(&ptp->rx_evts[pos].link, &ptp->evt_free_list); in efx_ptp_probe() 1694 queue_work(ptp->workwq, &ptp->work); in efx_ptp_rx() 1712 queue_work(ptp->workwq, &ptp->work); in efx_siena_ptp_tx() 1789 if (!ptp) in efx_siena_ptp_get_ts_info() 1839 queue_work(ptp->workwq, &ptp->work); in ptp_event_failure() 1878 queue_work(ptp->workwq, &ptp->work); in ptp_event_rx() 1900 queue_work(ptp->pps_workwq, &ptp->pps_work); in ptp_event_pps() 1908 if (!ptp) { in efx_siena_ptp_event() [all …]
|
/openbmc/linux/include/linux/ |
H A D | ptp_clock_kernel.h | 178 s32 (*getmaxphase)(struct ptp_clock_info *ptp); 183 int (*getcrosststamp)(struct ptp_clock_info *ptp, 189 int (*getcrosscycles)(struct ptp_clock_info *ptp, 191 int (*enable)(struct ptp_clock_info *ptp, 195 long (*do_aux_work)(struct ptp_clock_info *ptp); 329 extern void ptp_clock_event(struct ptp_clock *ptp, 338 extern int ptp_clock_index(struct ptp_clock *ptp); 356 int ptp_find_pin(struct ptp_clock *ptp, 374 int ptp_find_pin_unlocked(struct ptp_clock *ptp, 392 void ptp_cancel_worker_sync(struct ptp_clock *ptp); [all …]
|
/openbmc/linux/drivers/net/ethernet/sfc/ |
H A D | ptp.c | 938 ptp->nic_to_kernel_time(0, ptp->timeset[i].wait, 0)); in efx_ptp_process_times() 1275 queue_delayed_work(ptp->workwq, &ptp->cleanup_work, in efx_ptp_insert_filter() 1327 if (!ptp->channel || !list_empty(&ptp->rxfilters_mcast)) in efx_ptp_insert_multicast_filters() 1535 queue_delayed_work(ptp->workwq, &ptp->cleanup_work, in efx_ptp_cleanup_worker() 1779 queue_work(ptp->workwq, &ptp->work); in efx_ptp_rx() 1797 queue_work(ptp->workwq, &ptp->work); in efx_ptp_tx() 1873 if (!ptp) in efx_ptp_get_ts_info() 1934 queue_work(ptp->workwq, &ptp->work); in ptp_event_failure() 1951 queue_work(ptp->pps_workwq, &ptp->pps_work); in ptp_event_pps() 1959 if (!ptp) { in efx_ptp_event() [all …]
|
/openbmc/linux/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ |
H A D | base.c | 45 struct nvkm_mmu_ptp *ptp = pt->ptp; in nvkm_mmu_ptp_put() local 51 list_add(&ptp->head, &mmu->ptp.list); in nvkm_mmu_ptp_put() 55 if (ptp->free == ptp->mask) { in nvkm_mmu_ptp_put() 58 kfree(ptp); in nvkm_mmu_ptp_put() 74 ptp = list_first_entry_or_null(&mmu->ptp.list, typeof(*ptp), head); in nvkm_mmu_ptp_get() 75 if (!ptp) { in nvkm_mmu_ptp_get() 77 if (!(ptp = kmalloc(sizeof(*ptp), GFP_KERNEL))) { in nvkm_mmu_ptp_get() 90 slot = nvkm_memory_size(ptp->pt->memory) >> ptp->shift; in nvkm_mmu_ptp_get() 92 ptp->free = ptp->mask; in nvkm_mmu_ptp_get() 93 list_add(&ptp->head, &mmu->ptp.list); in nvkm_mmu_ptp_get() [all …]
|
/openbmc/linux/drivers/net/ethernet/renesas/ |
H A D | ravb_ptp.c | 94 ptp.info); in ravb_ptp_adjfine() 105 priv->ptp.current_addend = addend; in ravb_ptp_adjfine() 123 ptp.info); in ravb_ptp_adjtime() 144 ptp.info); in ravb_ptp_gettime64() 159 ptp.info); in ravb_ptp_settime64() 174 ptp.info); in ravb_ptp_extts() 191 priv->ptp.extts[req->index] = on; in ravb_ptp_extts() 209 ptp.info); in ravb_ptp_perout() 330 priv->ptp.info = ravb_ptp_info; in ravb_ptp_init() 333 priv->ptp.current_addend = priv->ptp.default_addend; in ravb_ptp_init() [all …]
|
H A D | rcar_gen4_ptp.c | 15 #define ptp_to_priv(ptp) container_of(ptp, struct rcar_gen4_ptp_private, info) argument 31 struct rcar_gen4_ptp_private *ptp_priv = ptp_to_priv(ptp); in rcar_gen4_ptp_adjfine() 64 _rcar_gen4_ptp_gettime(ptp, ts); in rcar_gen4_ptp_gettime() 93 _rcar_gen4_ptp_settime(ptp, ts); in rcar_gen4_ptp_settime() 107 _rcar_gen4_ptp_gettime(ptp, &ts); in rcar_gen4_ptp_adjtime() 110 _rcar_gen4_ptp_settime(ptp, &ts); in rcar_gen4_ptp_adjtime() 172 struct rcar_gen4_ptp_private *ptp; in rcar_gen4_ptp_alloc() local 174 ptp = devm_kzalloc(&pdev->dev, sizeof(*ptp), GFP_KERNEL); in rcar_gen4_ptp_alloc() 175 if (!ptp) in rcar_gen4_ptp_alloc() 178 ptp->info = rcar_gen4_ptp_info; in rcar_gen4_ptp_alloc() [all …]
|
/openbmc/linux/Documentation/ABI/testing/ |
H A D | sysfs-ptp | 9 What: /sys/class/ptp/ptp<N>/ 17 What: /sys/class/ptp/ptp<N>/clock_name 28 What: /sys/class/ptp/ptp<N>/max_adjustment 36 What: /sys/class/ptp/ptp<N>/max_vclocks 43 What: /sys/class/ptp/ptp<N>/n_alarms 64 What: /sys/class/ptp/ptp<N>/n_pins 71 What: /sys/class/ptp/ptp<N>/n_vclocks 84 What: /sys/class/ptp/ptp<N>/pins 116 What: /sys/class/ptp/ptp<N>/fifo 124 What: /sys/class/ptp/ptp<N>/period [all …]
|
/openbmc/linux/drivers/net/ethernet/intel/ice/ |
H A D | ice_ptp.c | 354 if (pf->ptp.clock) in ice_get_ptp_clock_index() 399 if (!pf->ptp.clock) in ice_set_ptp_clock_index() 1080 kthread_queue_delayed_work(pf->ptp.kworker, &pf->ptp.work, in ice_ptp_reset_cached_phctime() 2375 if (pf->ptp.clock) in ice_ptp_create_clock() 2451 struct ice_pf *pf = container_of(ptp, struct ice_pf, ptp); in ice_ptp_periodic_work() 2460 kthread_queue_delayed_work(ptp->kworker, &ptp->work, in ice_ptp_periodic_work() 2470 struct ice_ptp *ptp = &pf->ptp; in ice_ptp_reset() local 2545 kthread_queue_delayed_work(ptp->kworker, &ptp->work, 0); in ice_ptp_reset() 2560 struct ice_ptp *ptp = &pf->ptp; in ice_ptp_prepare_for_reset() local 2678 kthread_queue_delayed_work(ptp->kworker, &ptp->work, 0); in ice_ptp_init_work() [all …]
|
/openbmc/linux/drivers/net/ethernet/cavium/common/ |
H A D | cavium_ptp.h | 30 void cavium_ptp_put(struct cavium_ptp *ptp); 32 static inline u64 cavium_ptp_tstamp2time(struct cavium_ptp *ptp, u64 tstamp) in cavium_ptp_tstamp2time() argument 37 spin_lock_irqsave(&ptp->spin_lock, flags); in cavium_ptp_tstamp2time() 38 ret = timecounter_cyc2time(&ptp->time_counter, tstamp); in cavium_ptp_tstamp2time() 39 spin_unlock_irqrestore(&ptp->spin_lock, flags); in cavium_ptp_tstamp2time() 56 static inline void cavium_ptp_put(struct cavium_ptp *ptp) {} in cavium_ptp_put() argument 58 static inline u64 cavium_ptp_tstamp2time(struct cavium_ptp *ptp, u64 tstamp) in cavium_ptp_tstamp2time() argument
|
/openbmc/linux/Documentation/devicetree/bindings/ptp/ |
H A D | brcm,ptp-dte.txt | 9 "brcm,ptp-dte" 11 "brcm,iproc-ptp-dte" - for iproc based SoC's 16 ptp: ptp-dte@180af650 { 17 compatible = "brcm,iproc-ptp-dte", "brcm,ptp-dte";
|
/openbmc/linux/include/soc/mscc/ |
H A D | ocelot_ptp.h | 48 int ocelot_ptp_gettime64(struct ptp_clock_info *ptp, struct timespec64 *ts); 49 int ocelot_ptp_settime64(struct ptp_clock_info *ptp, 51 int ocelot_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta); 52 int ocelot_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm); 53 int ocelot_ptp_verify(struct ptp_clock_info *ptp, unsigned int pin, 55 int ocelot_ptp_enable(struct ptp_clock_info *ptp,
|
/openbmc/linux/drivers/net/phy/mscc/ |
H A D | mscc_ptp.c | 458 len = skb_queue_len(&ptp->tx_queue); in vsc85xx_dequeue_skb() 463 skb = __skb_dequeue(&ptp->tx_queue); in vsc85xx_dequeue_skb() 497 vsc85xx_dequeue_skb(ptp); in vsc85xx_get_tx_ts() 1132 vsc8531->ptp->configured = 1; in vsc85xx_hwtstamp() 1167 if (!vsc8531->ptp->configured) in vsc85xx_txtstamp() 1192 if (!vsc8531->ptp->configured) in vsc85xx_rxtstamp() 1492 vsc8531->ptp->ptp_clock = ptp_clock_register(&vsc8531->ptp->caps, in __vsc8584_init_ptp() 1539 vsc85xx_get_tx_ts(priv->ptp); in vsc8584_handle_ts_interrupt() 1553 vsc8531->ptp = devm_kzalloc(&phydev->mdio.dev, sizeof(*vsc8531->ptp), in vsc8584_ptp_probe() 1555 if (!vsc8531->ptp) in vsc8584_ptp_probe() [all …]
|