/linux/drivers/net/ethernet/pensando/ionic/ |
H A 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/drivers/ptp/ |
H A D | ptp_mock.c | 51 struct mock_phc *phc = info_to_phc(info); in mock_phc_adjfine() local 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() 67 struct mock_phc *phc = info_to_phc(info); in mock_phc_adjtime() local 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() 79 struct mock_phc *phc = info_to_phc(info); in mock_phc_settime64() local [all …]
|
/linux/drivers/net/ethernet/microchip/sparx5/ |
H A D | sparx5_ptp.c | 86 struct sparx5_phc *phc; in sparx5_ptp_hwtstamp_set() local 135 phc = &sparx5->phc[SPARX5_PHC_PORT]; in sparx5_ptp_hwtstamp_set() 136 phc->hwtstamp_config = *cfg; in sparx5_ptp_hwtstamp_set() 146 struct sparx5_phc *phc; in sparx5_ptp_hwtstamp_get() local 148 phc = &sparx5->phc[SPARX5_PHC_PORT]; in sparx5_ptp_hwtstamp_get() 149 *cfg = phc->hwtstamp_config; in sparx5_ptp_hwtstamp_get() 398 struct sparx5_phc *phc = container_of(ptp, struct sparx5_phc, info); in sparx5_ptp_adjfine() local 399 struct sparx5 *sparx5 = phc->sparx5; in sparx5_ptp_adjfine() 425 spx5_rmw(PTP_PTP_DOM_CFG_PTP_CLKCFG_DIS_SET(1 << BIT(phc->index)), in sparx5_ptp_adjfine() 430 PTP_CLK_PER_CFG(phc->index, 0)); in sparx5_ptp_adjfine() [all …]
|
/linux/drivers/net/ethernet/intel/iavf/ |
H A D | iavf_ptp.c | 166 * iavf_send_phc_read - Send request to read PHC time 171 * indirectly read the PHC time. 195 * iavf_read_phc_indirect - Indirectly read the PHC time via virtchnl 200 * Used when the device does not have direct register access to the PHC time. 256 * iavf_ptp_cache_phc_time - Cache PHC time for performing timestamp extension 259 * Periodically cache the PHC time in order to allow for timestamp extension. 290 * event. This task periodically reads the PHC time and stores it, to 411 bool phc = iavf_ptp_cap_supported(adapter, VIRTCHNL_1588_PTP_CAP_READ_PHC); in iavf_ptp_process_caps() local 417 if (adapter->ptp.clock && !phc) in iavf_ptp_process_caps() 419 else if (!adapter->ptp.clock && phc) in iavf_ptp_process_caps() [all …]
|
/linux/Documentation/ABI/testing/ |
H A 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/include/linux/ |
H A D | ptp_mock.h | 17 void mock_phc_destroy(struct mock_phc *phc); 18 int mock_phc_index(struct mock_phc *phc); 27 static inline void mock_phc_destroy(struct mock_phc *phc) in mock_phc_destroy() argument 31 static inline int mock_phc_index(struct mock_phc *phc) in mock_phc_index() argument
|
/linux/Documentation/driver-api/ |
H A D | ptp.rst | 80 This function has a set of requirements from the PHC in order to be 83 * The PHC implements a servo algorithm internally that is used to 85 * When other PTP adjustment functions are called, the PHC servo 89 that 'jumps' the PHC clock time based on the provided offset. It 117 - Up to 4 independent PHC channels 124 … - Lock to GNSS input, automatic switching between GNSS and user-space PHC control (optional) 135 - PHC instances
|
/linux/drivers/net/ethernet/intel/ice/ |
H A D | ice_ptp.c | 313 /* Read the system timestamp pre PHC read */ in ice_ptp_read_src_clk_reg() 319 /* Read the system timestamp post PHC read */ in ice_ptp_read_src_clk_reg() 327 /* Read the system timestamp post PHC read */ in ice_ptp_read_src_clk_reg() 348 * @cached_phc_time: recently cached copy of PHC time 359 * 1) have a recently cached copy of the PHC time 361 * seconds) before or after the PHC time was captured. 364 * captured after the PHC time. In this case, the full timestamp is just 365 * the cached PHC time plus the delta. 367 * timestamp was captured *before* the PHC time, i.e. because the PHC 371 * This algorithm works even if the PHC time was updated after a Tx timestamp [all …]
|
/linux/drivers/mfd/ |
H A D | rsmu_core.c | 27 .name = "8a3400x-phc", 36 .name = "82p33x1x-phc", 45 .name = "8v19n85x-phc",
|
/linux/drivers/net/ethernet/intel/e1000e/ |
H A D | ptp.c | 4 /* PTP 1588 Hardware Clock (PHC) 22 * Adjust the frequency of the PHC cycle counter by the indicated delta from 156 * @ts: timespec structure to hold the current PHC time 216 * Enable (or disable) ancillary features of the PHC subsystem. 336 e_info("registered PHC clock\n"); in e1000e_ptp_init() 356 e_info("removed PHC\n"); in e1000e_ptp_remove()
|
/linux/net/mac802154/ |
H A D | scan.c | 575 "No ASSOC REQ ACK received from %8phC\n", &ceaddr); in mac802154_perform_association() 582 "No ASSOC RESP received from %8phC\n", &ceaddr); in mac802154_perform_association() 594 "Negative ASSOC RESP received from %8phC: %s\n", &ceaddr, in mac802154_perform_association() 635 "ASSOC RESP 0x%x received from %8phC, getting short address %04x\n", in mac802154_process_association_resp() 693 "No DISASSOC ACK received from %8phC\n", &teaddr); in mac802154_send_disassociation_notif() 699 dev_dbg(&sdata->dev->dev, "DISASSOC ACK received from %8phC\n", &teaddr); in mac802154_send_disassociation_notif() 748 "No ASSOC RESP ACK received from %8phC\n", &teaddr); in mac802154_send_association_resp_locked() 818 "Refusing ASSOC REQ from child %8phC, %s\n", &ceaddr, in mac802154_process_association_req() 831 "Accepting ASSOC REQ from child %8phC, providing short address 0x%04x\n", in mac802154_process_association_req() 842 "Successful association with new child %8phC\n", &ceaddr); in mac802154_process_association_req() [all …]
|
H A D | cfg.c | 335 "Device %8phC is already associated\n", &ceaddr); in mac802154_associate() 408 "Disassociation with %8phC may have failed (%d)\n", in mac802154_disassociate_from_parent() 420 "Disassociation from %8phC may have failed (%d)\n", in mac802154_disassociate_from_parent() 486 "Device %8phC is not associated with us\n", &teaddr); in mac802154_disassociate()
|
/linux/drivers/net/ethernet/mellanox/mlx4/ |
H A D | en_clock.c | 93 mlx4_info(mdev, "removed PHC\n"); in mlx4_en_remove_timestamp() 123 * Adjust the frequency of the PHC cycle counter by the indicated scaled_ppm 220 * Enable (or disable) ancillary features of the PHC subsystem. 288 /* Configure the PHC */ in mlx4_en_init_timestamp() 298 mlx4_info(mdev, "registered PHC clock\n"); in mlx4_en_init_timestamp()
|
/linux/drivers/net/wireless/intel/iwlwifi/mvm/ |
H A D | ptp.c | 166 IWL_ERR(mvm, "No PHC clock registered\n"); in iwl_mvm_phc_get_crosstimestamp() 286 /* Give a short 'friendly name' to identify the PHC clock */ in iwl_mvm_ptp_init() 297 IWL_ERR(mvm, "Failed to register PHC clock (%ld)\n", in iwl_mvm_ptp_init() 301 IWL_INFO(mvm, "Registered PHC clock: %s, with index: %d\n", in iwl_mvm_ptp_init() 315 IWL_INFO(mvm, "Unregistering PHC clock: %s, with index: %d\n", in iwl_mvm_ptp_remove()
|
/linux/drivers/net/usb/ |
H A 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/drivers/net/ethernet/intel/i40e/ |
H A D | i40e_ptp.c | 272 * i40e_ptp_read - Read the PHC time from the device 275 * @sts: structure to hold the system time before and after reading the PHC 300 * i40e_ptp_write - Write the PHC time to the device 338 * i40e_ptp_adjfine - Adjust the PHC frequency 342 * Adjust the frequency of the PHC by the indicated delta from the base 396 * i40e_ptp_adjtime - Adjust the PHC time 398 * @delta: Offset in nanoseconds to adjust the PHC time by 441 * i40e_ptp_gettimex - Get the time of the PHC 444 * @sts: structure to hold the system time before and after reading the PHC 462 * i40e_ptp_settime - Set the time of the PHC [all …]
|
/linux/tools/testing/selftests/ptp/ |
H A D | testptp.c | 128 " -k val measure the time offset between system and phc clock\n" in usage() 138 " -o val phase offset (in nanoseconds) to be provided to the PHC servo\n" in usage() 563 puts("system and phc clock time offset request okay"); in main() 575 printf("phc time: %lld.%09u\n", in main() 579 printf("system/phc clock time offset is %" PRId64 " ns\n" in main() 623 printf(" phc time: %lld.%09u\n", in main() 660 puts("system and phc crosstimestamping request okay"); in main()
|
/linux/include/uapi/linux/ |
H A D | net_tstamp.h | 100 * PHC index. Note this PHC index is not stable as when there 102 * will be the PHC index.
|
/linux/drivers/net/ethernet/qlogic/qede/ |
H A D | qede_ptp.c | 121 /* Enable (or disable) ancillary features of the phc subsystem */ 132 DP_ERR(edev, "PHC ancillary features are not supported\n"); in qede_ptp_ancillary_feature_enable() 183 /* Read the PHC. This API is invoked with ptp_lock held. */ 195 WARN_ONCE(1, "PHC read err %d\n", rc); in qede_ptp_read_cc() 197 DP_VERBOSE(edev, QED_MSG_DEBUG, "PHC read cycles = %llu\n", phc_cycles); in qede_ptp_read_cc()
|
/linux/drivers/net/netdevsim/ |
H A D | netdev.c | 936 struct mock_phc *phc; in nsim_init_netdevsim() local 939 phc = mock_phc_create(&ns->nsim_bus_dev->dev); in nsim_init_netdevsim() 940 if (IS_ERR(phc)) in nsim_init_netdevsim() 941 return PTR_ERR(phc); in nsim_init_netdevsim() 943 ns->phc = phc; in nsim_init_netdevsim() 989 mock_phc_destroy(ns->phc); in nsim_init_netdevsim() 1007 mock_phc_destroy(ns->phc); in nsim_exit_netdevsim()
|
/linux/drivers/scsi/qla2xxx/ |
H A D | qla_init.c | 236 "Async-%s timeout - hdl=%x portid=%06x %8phC.\n", in qla2x00_async_iocb_timeout() 302 "%s %8phC res %d \n", __func__, sp->fcport->port_name, res); in qla2x00_async_login_sp_done() 334 "%s: %8phC - not sending command.\n", in qla2x00_async_login() 374 "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d %s.\n", in qla2x00_async_login() 429 "Async-logout - hdl=%x loop-id=%x portid=%02x%02x%02x %8phC explicit %d.\n", in qla2x00_async_logout() 514 "%s %8phC DS %d LS %d rc %d login %d|%d rscn %d|%d lid %d\n", in qla24xx_handle_adisc_event() 524 "%s %8phC: adisc fail: post delete\n", in qla24xx_handle_adisc_event() 545 "%s %8phC generation changed\n", in qla24xx_handle_adisc_event() 578 "Async done-%s res %x %8phC\n", in qla2x00_async_adisc_sp_done() 609 "%s: %8phC is being delete - not sending command.\n", in qla2x00_async_adisc() [all …]
|
H A D | qla_target.c | 542 "Async done-%s res %x %8phC type %d\n", in qla2x00_async_nack_sp_done() 559 "%s %8phC edif: PLOGI- AUTH WAIT\n", __func__, in qla2x00_async_nack_sp_done() 642 "Async-%s %8phC hndl %x %s\n", in qla24xx_async_notify_ack() 740 "%s: kref_get fail sess %8phC \n", in qlt_fc_port_added() 747 "qla_target(%u): %ssession for port %8phC " in qlt_fc_port_added() 762 "port %8phC (loop ID %d) became global\n", vha->vp_idx, in qlt_fc_port_added() 787 "%s %d %8phC Term INOT due to new INOT", in qlt_plogi_ack_find_add() 826 "Sending PLOGI ACK to wwn %8phC s_id %02x:%02x:%02x loop_id %#04x" in qlt_plogi_ack_unref() 867 "Linking sess %p [%d] wwn %8phC with PLOGI ACK to wwn %8phC" in qlt_plogi_ack_link() 960 "%s: se_sess %p / sess %p from port %8phC loop_id %#04x" in qlt_free_session_done() [all …]
|
/linux/Documentation/networking/ |
H A D | timestamping.rst | 678 There are situations when there may be more than one PHC (PTP Hardware Clock) 680 user to select which PHC to use for timestamping Ethernet frames. Instead, the 681 assumption is that the outermost PHC is always the most preferable, and that 703 I/O, they do have their own PHC). It is typical, but not mandatory, for all 704 interfaces of a DSA switch to share the same PHC. 822 But a MAC driver that is unaware of PHC stacking might get tripped up by 833 described above, in the case of a stacked PHC system, this condition should 834 never trigger, as this MAC is certainly not the outermost PHC. But this is 841 PHC system, this is incorrect because this MAC driver is not the only entity 849 that PTP timestamping is not enabled for anything other than the outermost PHC,
|
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/ |
H A D | hclge_ptp.c | 164 /* synchronize the time of phc */ in hclge_ptp_settime() 368 dev_err(&hdev->pdev->dev, "phc is unsupported\n"); in hclge_ptp_set_cfg() 391 dev_err(&hdev->pdev->dev, "phc is unsupported\n"); in hclge_ptp_get_ts_info() 519 dev_info(&hdev->pdev->dev, "phc initializes ok!\n"); in hclge_ptp_init() 543 dev_err(&hdev->pdev->dev, "failed to disable phc\n"); in hclge_ptp_uninit()
|
/linux/Documentation/netlink/specs/ |
H A D | ethtool.yaml | 910 name: phc-index 1285 name: phc-vclocks 1286 attr-cnt-name: __ethtool-a-phc-vclocks-cnt 2009 - phc-index 2141 name: phc-vclocks-get 2142 doc: Get PHC VCLOCKs. 2144 attribute-set: phc-vclocks 2146 do: &phc-vclocks-get-op 2154 dump: *phc-vclocks-get-op
|