/Linux-v6.1/drivers/net/ethernet/pensando/ionic/ |
D | ionic_phc.c | 79 if (!lif->phc || !lif->phc->ptp) in ionic_lif_hwstamp_set_ts_config() 82 mutex_lock(&lif->phc->config_lock); in ionic_lif_hwstamp_set_ts_config() 94 memcpy(config, &lif->phc->ts_config, sizeof(*config)); in ionic_lif_hwstamp_set_ts_config() 95 memset(&lif->phc->ts_config, 0, sizeof(lif->phc->ts_config)); in ionic_lif_hwstamp_set_ts_config() 96 lif->phc->ts_config_tx_mode = 0; in ionic_lif_hwstamp_set_ts_config() 97 lif->phc->ts_config_rx_filt = 0; in ionic_lif_hwstamp_set_ts_config() 137 if (tx_mode != lif->phc->ts_config_tx_mode) { in ionic_lif_hwstamp_set_ts_config() 143 if (rx_filt != lif->phc->ts_config_rx_filt) { in ionic_lif_hwstamp_set_ts_config() 149 if (rx_all != (lif->phc->ts_config.rx_filter == HWTSTAMP_FILTER_ALL)) { in ionic_lif_hwstamp_set_ts_config() 155 memcpy(&lif->phc->ts_config, config, sizeof(*config)); in ionic_lif_hwstamp_set_ts_config() [all …]
|
/Linux-v6.1/drivers/net/ethernet/microchip/lan966x/ |
D | lan966x_ptp.c | 42 struct lan966x_phc *phc; in lan966x_ptp_hwtstamp_set() local 93 phc = &lan966x->phc[LAN966X_PHC_PORT]; in lan966x_ptp_hwtstamp_set() 94 memcpy(&phc->hwtstamp_config, &cfg, sizeof(cfg)); in lan966x_ptp_hwtstamp_set() 103 struct lan966x_phc *phc; in lan966x_ptp_hwtstamp_get() local 105 phc = &lan966x->phc[LAN966X_PHC_PORT]; in lan966x_ptp_hwtstamp_get() 106 return copy_to_user(ifr->ifr_data, &phc->hwtstamp_config, in lan966x_ptp_hwtstamp_get() 107 sizeof(phc->hwtstamp_config)) ? -EFAULT : 0; in lan966x_ptp_hwtstamp_get() 327 struct lan966x_phc *phc; in lan966x_ptp_ext_irq_handler() local 341 phc = &lan966x->phc[i]; in lan966x_ptp_ext_irq_handler() 342 pin = ptp_find_pin_unlocked(phc->clock, PTP_PF_EXTTS, 0); in lan966x_ptp_ext_irq_handler() [all …]
|
/Linux-v6.1/drivers/net/ethernet/microchip/sparx5/ |
D | sparx5_ptp.c | 81 struct sparx5_phc *phc; in sparx5_ptp_hwtstamp_set() local 133 phc = &sparx5->phc[SPARX5_PHC_PORT]; in sparx5_ptp_hwtstamp_set() 134 memcpy(&phc->hwtstamp_config, &cfg, sizeof(cfg)); in sparx5_ptp_hwtstamp_set() 143 struct sparx5_phc *phc; in sparx5_ptp_hwtstamp_get() local 145 phc = &sparx5->phc[SPARX5_PHC_PORT]; in sparx5_ptp_hwtstamp_get() 146 return copy_to_user(ifr->ifr_data, &phc->hwtstamp_config, in sparx5_ptp_hwtstamp_get() 147 sizeof(phc->hwtstamp_config)) ? -EFAULT : 0; in sparx5_ptp_hwtstamp_get() 395 struct sparx5_phc *phc = container_of(ptp, struct sparx5_phc, info); in sparx5_ptp_adjfine() local 396 struct sparx5 *sparx5 = phc->sparx5; in sparx5_ptp_adjfine() 422 spx5_rmw(PTP_PTP_DOM_CFG_PTP_CLKCFG_DIS_SET(1 << BIT(phc->index)), in sparx5_ptp_adjfine() [all …]
|
/Linux-v6.1/Documentation/ABI/testing/ |
D | sysfs-timecard | 17 Description: (RO) The list of available time sources that the PHC 58 PHC output PPS is from the PHC clock 62 IRIG output is from the PHC, in IRIG-B format 63 DCF output is from the PHC, in DCF format 76 the PHC. May be changed by writing one of the listed 246 Description: (RW) When retrieving the PHC with the PTP SYS_OFFSET_EXTENDED 247 ioctl, a system timestamp is made before and after the PHC 250 with the PHC time. This estimate may be wrong, as it depends 251 on PCI latencies, and when the PHC time was latched 255 retrieved PHC time. [all …]
|
/Linux-v6.1/include/linux/ |
D | ptp_clock_kernel.h | 47 * struct ptp_system_timestamp - system time corresponding to a PHC timestamp 97 * parameter ts: Holds the PHC timestamp. 100 * reading the lowest bits of the PHC timestamp and the second 123 * parameter ts: Holds the PHC timestamp. 126 * reading the lowest bits of the PHC timestamp and the second 143 * array on behalf of the drivers, but the PHC subsystem 257 * Returns a valid pointer on success or PTR_ERR on failure. If PHC 377 * @pclock_index: phc index of ptp pclock. 388 * @vclock_index: phc index of ptp vclock.
|
/Linux-v6.1/drivers/net/ethernet/intel/ice/ |
D | ice_ptp.c | 469 /* Read the system timestamp pre PHC read */ in ice_ptp_read_src_clk_reg() 474 /* Read the system timestamp post PHC read */ in ice_ptp_read_src_clk_reg() 495 * @cached_phc_time: recently cached copy of PHC time 506 * 1) have a recently cached copy of the PHC time 508 * seconds) before or after the PHC time was captured. 511 * captured after the PHC time. In this case, the full timestamp is just 512 * the cached PHC time plus the delta. 514 * timestamp was captured *before* the PHC time, i.e. because the PHC 518 * This algorithm works even if the PHC time was updated after a Tx timestamp 522 * This calculation primarily relies on keeping the cached PHC time up to [all …]
|
D | ice_ptp_hw.c | 967 * ice_ptp_init_phc_e822 - Perform E822 specific PHC initialization 970 * Perform PHC initialization steps specific to E822 devices. 1436 * Program the conversion ration of Serdes clock "unit intervals" (UIs) to PHC 1540 * To calculate the conversion, we use the PHC clock frequency (cycles per 1573 /* Calculate TUs per cycle of the PHC clock */ in ice_phy_cfg_parpcs_e822() 2149 * ice_read_phy_and_phc_time_e822 - Simultaneously capture PHC and PHY time 2153 * @phc_time: on return, the lower 64bits of PHC time 2155 * Issue a READ_TIME timer command to simultaneously capture the PHY and PHC 2169 /* Prepare the PHC timer for a READ_TIME capture command */ in ice_read_phy_and_phc_time_e822() 2180 /* Read the captured PHC time from the shadow time registers */ in ice_read_phy_and_phc_time_e822() [all …]
|
D | ice_ptp.h | 163 * @cached_phc_time: a cached copy of the PHC time for timestamp extension 176 * @tx_hwtstamp_discarded: number of Tx skbs discarded due to cached PHC time 178 * @late_cached_phc_updates: number of times cached PHC update is late
|
/Linux-v6.1/drivers/mfd/ |
D | rsmu_core.c | 27 .name = "8a3400x-phc", 36 .name = "82p33x1x-phc", 45 .name = "8v19n85x-phc",
|
/Linux-v6.1/drivers/net/ethernet/intel/e1000e/ |
D | ptp.c | 4 /* PTP 1588 Hardware Clock (PHC) 22 * Adjust the frequency of the PHC cycle counter by the indicated delta from 165 * @ts: timespec structure to hold the current PHC time 225 * Enable (or disable) ancillary features of the PHC subsystem. 333 e_info("registered PHC clock\n"); in e1000e_ptp_init() 353 e_info("removed PHC\n"); in e1000e_ptp_remove()
|
/Linux-v6.1/drivers/net/ethernet/mellanox/mlx4/ |
D | en_clock.c | 88 mlx4_info(mdev, "removed PHC\n"); in mlx4_en_remove_timestamp() 118 * Adjust the frequency of the PHC cycle counter by the indicated delta from 222 * Enable (or disable) ancillary features of the PHC subsystem. 290 /* Configure the PHC */ in mlx4_en_init_timestamp() 300 mlx4_info(mdev, "registered PHC clock\n"); in mlx4_en_init_timestamp()
|
/Linux-v6.1/drivers/net/usb/ |
D | kalmia.c | 216 "Sending package with length %i and padding %i. Header: %6phC.", in kalmia_tx_fixup() 255 "Received expected unknown frame header: %6phC. Package length: %i\n", in kalmia_rx_fixup() 261 "Received unknown frame header: %6phC. Package length: %i\n", in kalmia_rx_fixup() 269 "Received header: %6phC. Package length: %i\n", in kalmia_rx_fixup() 293 "End header: %6phC. Package length: %i\n", in kalmia_rx_fixup()
|
/Linux-v6.1/include/uapi/linux/ |
D | net_tstamp.h | 85 * PHC index. Note this PHC index is not stable as when there 87 * will be the PHC index.
|
D | ptp_clock.h | 143 * Array of interleaved system/phc time stamps. The kernel 154 * Array of [system, phc, system] time stamps. The kernel will provide
|
/Linux-v6.1/drivers/net/ethernet/intel/i40e/ |
D | i40e_ptp.c | 271 * i40e_ptp_read - Read the PHC time from the device 274 * @sts: structure to hold the system time before and after reading the PHC 299 * i40e_ptp_write - Write the PHC time to the device 337 * i40e_ptp_adjfine - Adjust the PHC frequency 341 * Adjust the frequency of the PHC by the indicated delta from the base 406 * i40e_ptp_adjtime - Adjust the PHC time 408 * @delta: Offset in nanoseconds to adjust the PHC time by 451 * i40e_ptp_gettimex - Get the time of the PHC 454 * @sts: structure to hold the system time before and after reading the PHC 472 * i40e_ptp_settime - Set the time of the PHC [all …]
|
/Linux-v6.1/drivers/net/ethernet/qlogic/qede/ |
D | qede_ptp.c | 118 /* Enable (or disable) ancillary features of the phc subsystem */ 129 DP_ERR(edev, "PHC ancillary features are not supported\n"); in qede_ptp_ancillary_feature_enable() 180 /* Read the PHC. This API is invoked with ptp_lock held. */ 192 WARN_ONCE(1, "PHC read err %d\n", rc); in qede_ptp_read_cc() 194 DP_VERBOSE(edev, QED_MSG_DEBUG, "PHC read cycles = %llu\n", phc_cycles); in qede_ptp_read_cc()
|
/Linux-v6.1/Documentation/networking/ |
D | timestamping.rst | 597 There are situations when there may be more than one PHC (PTP Hardware Clock) 599 user to select which PHC to use for timestamping Ethernet frames. Instead, the 600 assumption is that the outermost PHC is always the most preferable, and that 622 I/O, they do have their own PHC). It is typical, but not mandatory, for all 623 interfaces of a DSA switch to share the same PHC. 743 But a MAC driver that is unaware of PHC stacking might get tripped up by 754 described above, in the case of a stacked PHC system, this condition should 755 never trigger, as this MAC is certainly not the outermost PHC. But this is 762 PHC system, this is incorrect because this MAC driver is not the only entity 770 that PTP timestamping is not enabled for anything other than the outermost PHC,
|
/Linux-v6.1/drivers/scsi/qla2xxx/ |
D | qla_init.c | 229 "Async-%s timeout - hdl=%x portid=%06x %8phC.\n", in qla2x00_async_iocb_timeout() 295 "%s %8phC res %d \n", __func__, sp->fcport->port_name, res); in qla2x00_async_login_sp_done() 327 "%s: %8phC - not sending command.\n", in qla2x00_async_login() 367 "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d %s.\n", in qla2x00_async_login() 416 "Async-logout - hdl=%x loop-id=%x portid=%02x%02x%02x %8phC explicit %d.\n", in qla2x00_async_logout() 500 "%s %8phC DS %d LS %d rc %d login %d|%d rscn %d|%d lid %d\n", in qla24xx_handle_adisc_event() 510 "%s %8phC: adisc fail: post delete\n", in qla24xx_handle_adisc_event() 525 "%s %8phC generation changed\n", in qla24xx_handle_adisc_event() 558 "Async done-%s res %x %8phC\n", in qla2x00_async_adisc_sp_done() 589 "%s: %8phC is being delete - not sending command.\n", in qla2x00_async_adisc() [all …]
|
D | qla_target.c | 558 "Async done-%s res %x %8phC type %d\n", in qla2x00_async_nack_sp_done() 575 "%s %8phC edif: PLOGI- AUTH WAIT\n", __func__, in qla2x00_async_nack_sp_done() 658 "Async-%s %8phC hndl %x %s\n", in qla24xx_async_notify_ack() 756 "%s: kref_get fail sess %8phC \n", in qlt_fc_port_added() 763 "qla_target(%u): %ssession for port %8phC " in qlt_fc_port_added() 778 "port %8phC (loop ID %d) became global\n", vha->vp_idx, in qlt_fc_port_added() 803 "%s %d %8phC Term INOT due to new INOT", in qlt_plogi_ack_find_add() 842 "Sending PLOGI ACK to wwn %8phC s_id %02x:%02x:%02x loop_id %#04x" in qlt_plogi_ack_unref() 883 "Linking sess %p [%d] wwn %8phC with PLOGI ACK to wwn %8phC" in qlt_plogi_ack_link() 976 "%s: se_sess %p / sess %p from port %8phC loop_id %#04x" in qlt_free_session_done() [all …]
|
/Linux-v6.1/drivers/net/ethernet/hisilicon/hns3/hns3pf/ |
D | hclge_ptp.c | 172 /* synchronize the time of phc */ in hclge_ptp_settime() 376 dev_err(&hdev->pdev->dev, "phc is unsupported\n"); in hclge_ptp_set_cfg() 399 dev_err(&hdev->pdev->dev, "phc is unsupported\n"); in hclge_ptp_get_ts_info() 530 dev_info(&hdev->pdev->dev, "phc initializes ok!\n"); in hclge_ptp_init() 554 dev_err(&hdev->pdev->dev, "failed to disable phc\n"); in hclge_ptp_uninit()
|
/Linux-v6.1/Documentation/driver-api/ |
D | ptp.rst | 101 - Up to 4 independent PHC channels 108 … - Lock to GNSS input, automatic switching between GNSS and user-space PHC control (optional)
|
/Linux-v6.1/tools/testing/selftests/ptp/ |
D | testptp.c | 127 " -k val measure the time offset between system and phc clock\n" in usage() 495 puts("system and phc clock time offset request okay"); in main() 507 printf("phc time: %lld.%u\n", in main() 511 printf("system/phc clock time offset is %" PRId64 " ns\n" in main()
|
/Linux-v6.1/drivers/net/phy/mscc/ |
D | mscc.h | 394 /* LOAD/SAVE GPIO pin, used for retrieving or setting time to the PHC. */ 406 * phc_lock: used for per-PHY PHC opertations. 413 * gpio_lock: used for PHC operations. Common for all PHYs as the load/save GPIO
|
/Linux-v6.1/drivers/net/ethernet/engleder/ |
D | tsnep_ptp.c | 234 netdev_info(adapter->netdev, "PHC added\n"); in tsnep_ptp_init() 244 netdev_info(adapter->netdev, "PHC removed\n"); in tsnep_ptp_cleanup()
|
/Linux-v6.1/Documentation/devicetree/bindings/ptp/ |
D | ptp-idt82p33.yaml | 41 phc@51 {
|