Lines Matching refs:efx

280 	struct efx_nic *efx;  member
342 void (*xmit_skb)(struct efx_nic *efx, struct sk_buff *skb);
353 bool efx_ptp_use_mac_tx_timestamps(struct efx_nic *efx) in efx_ptp_use_mac_tx_timestamps() argument
355 struct efx_ef10_nic_data *nic_data = efx->nic_data; in efx_ptp_use_mac_tx_timestamps()
357 return ((efx_nic_rev(efx) >= EFX_REV_HUNT_A0) && in efx_ptp_use_mac_tx_timestamps()
368 return efx_ptp_use_mac_tx_timestamps(channel->efx); in efx_ptp_want_txqs()
396 size_t efx_ptp_describe_stats(struct efx_nic *efx, u8 *strings) in efx_ptp_describe_stats() argument
398 if (!efx->ptp_data) in efx_ptp_describe_stats()
405 size_t efx_ptp_update_stats(struct efx_nic *efx, u64 *stats) in efx_ptp_update_stats() argument
412 if (!efx->ptp_data) in efx_ptp_update_stats()
419 stats[i] = *(unsigned int *)((char *)efx->ptp_data + in efx_ptp_update_stats()
429 rc = efx_mcdi_rpc(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_ptp_update_stats()
539 struct efx_channel *efx_ptp_channel(struct efx_nic *efx) in efx_ptp_channel() argument
541 return efx->ptp_data ? efx->ptp_data->channel : NULL; in efx_ptp_channel()
544 static u32 last_sync_timestamp_major(struct efx_nic *efx) in last_sync_timestamp_major() argument
546 struct efx_channel *channel = efx_ptp_channel(efx); in last_sync_timestamp_major()
558 efx_ptp_mac_nic_to_ktime_correction(struct efx_nic *efx, in efx_ptp_mac_nic_to_ktime_correction() argument
569 nic_major |= (last_sync_timestamp_major(efx) & 0xffff0000); in efx_ptp_mac_nic_to_ktime_correction()
579 struct efx_nic *efx = tx_queue->efx; in efx_ptp_nic_to_kernel_time() local
580 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_nic_to_kernel_time()
583 if (efx_ptp_use_mac_tx_timestamps(efx)) in efx_ptp_nic_to_kernel_time()
584 kt = efx_ptp_mac_nic_to_ktime_correction(efx, ptp, in efx_ptp_nic_to_kernel_time()
597 static int efx_ptp_get_attributes(struct efx_nic *efx) in efx_ptp_get_attributes() argument
601 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_get_attributes()
612 rc = efx_mcdi_rpc_quiet(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_ptp_get_attributes()
619 netif_info(efx, probe, efx->net_dev, "no PTP support\n"); in efx_ptp_get_attributes()
622 efx_mcdi_display_error(efx, MC_CMD_PTP, sizeof(inbuf), in efx_ptp_get_attributes()
696 static int efx_ptp_get_timestamp_corrections(struct efx_nic *efx) in efx_ptp_get_timestamp_corrections() argument
710 rc = efx_mcdi_rpc_quiet(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_ptp_get_timestamp_corrections()
713 efx->ptp_data->ts_corrections.ptp_tx = MCDI_DWORD(outbuf, in efx_ptp_get_timestamp_corrections()
715 efx->ptp_data->ts_corrections.ptp_rx = MCDI_DWORD(outbuf, in efx_ptp_get_timestamp_corrections()
717 efx->ptp_data->ts_corrections.pps_out = MCDI_DWORD(outbuf, in efx_ptp_get_timestamp_corrections()
719 efx->ptp_data->ts_corrections.pps_in = MCDI_DWORD(outbuf, in efx_ptp_get_timestamp_corrections()
723 efx->ptp_data->ts_corrections.general_tx = MCDI_DWORD( in efx_ptp_get_timestamp_corrections()
726 efx->ptp_data->ts_corrections.general_rx = MCDI_DWORD( in efx_ptp_get_timestamp_corrections()
730 efx->ptp_data->ts_corrections.general_tx = in efx_ptp_get_timestamp_corrections()
731 efx->ptp_data->ts_corrections.ptp_tx; in efx_ptp_get_timestamp_corrections()
732 efx->ptp_data->ts_corrections.general_rx = in efx_ptp_get_timestamp_corrections()
733 efx->ptp_data->ts_corrections.ptp_rx; in efx_ptp_get_timestamp_corrections()
736 efx->ptp_data->ts_corrections.ptp_tx = 0; in efx_ptp_get_timestamp_corrections()
737 efx->ptp_data->ts_corrections.ptp_rx = 0; in efx_ptp_get_timestamp_corrections()
738 efx->ptp_data->ts_corrections.pps_out = 0; in efx_ptp_get_timestamp_corrections()
739 efx->ptp_data->ts_corrections.pps_in = 0; in efx_ptp_get_timestamp_corrections()
740 efx->ptp_data->ts_corrections.general_tx = 0; in efx_ptp_get_timestamp_corrections()
741 efx->ptp_data->ts_corrections.general_rx = 0; in efx_ptp_get_timestamp_corrections()
743 efx_mcdi_display_error(efx, MC_CMD_PTP, sizeof(inbuf), outbuf, in efx_ptp_get_timestamp_corrections()
752 static int efx_ptp_enable(struct efx_nic *efx) in efx_ptp_enable() argument
761 efx->ptp_data->channel ? in efx_ptp_enable()
762 efx->ptp_data->channel->channel : 0); in efx_ptp_enable()
763 MCDI_SET_DWORD(inbuf, PTP_IN_ENABLE_MODE, efx->ptp_data->mode); in efx_ptp_enable()
765 rc = efx_mcdi_rpc_quiet(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_ptp_enable()
769 efx_mcdi_display_error(efx, MC_CMD_PTP, in efx_ptp_enable()
780 static int efx_ptp_disable(struct efx_nic *efx) in efx_ptp_disable() argument
788 rc = efx_mcdi_rpc_quiet(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_ptp_disable()
795 netif_info(efx, probe, efx->net_dev, "no PTP support\n"); in efx_ptp_disable()
797 efx_mcdi_display_error(efx, MC_CMD_PTP, in efx_ptp_disable()
814 static void efx_ptp_handle_no_channel(struct efx_nic *efx) in efx_ptp_handle_no_channel() argument
816 netif_err(efx, drv, efx->net_dev, in efx_ptp_handle_no_channel()
824 static void efx_ptp_send_times(struct efx_nic *efx, in efx_ptp_send_times() argument
829 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_send_times()
854 efx->type->ptp_write_host_time(efx, host_time); in efx_ptp_send_times()
890 efx_ptp_process_times(struct efx_nic *efx, MCDI_DECLARE_STRUCT_PTR(synch_buf), in efx_ptp_process_times() argument
900 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_process_times()
951 netif_warn(efx, drv, efx->net_dev, in efx_ptp_process_times()
966 netif_warn(efx, hw, efx->net_dev, in efx_ptp_process_times()
993 static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings) in efx_ptp_synchronize() argument
995 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_synchronize()
1013 rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf, in efx_ptp_synchronize()
1030 efx_ptp_send_times(efx, &last_time); in efx_ptp_synchronize()
1033 rc = efx_mcdi_rpc_finish(efx, MC_CMD_PTP, in efx_ptp_synchronize()
1038 rc = efx_ptp_process_times(efx, synch_buf, response_length, in efx_ptp_synchronize()
1056 static void efx_ptp_xmit_skb_queue(struct efx_nic *efx, struct sk_buff *skb) in efx_ptp_xmit_skb_queue() argument
1058 struct efx_ptp_data *ptp_data = efx->ptp_data; in efx_ptp_xmit_skb_queue()
1072 static void efx_ptp_xmit_skb_mc(struct efx_nic *efx, struct sk_buff *skb) in efx_ptp_xmit_skb_mc() argument
1074 struct efx_ptp_data *ptp_data = efx->ptp_data; in efx_ptp_xmit_skb_mc()
1098 rc = efx_mcdi_rpc(efx, MC_CMD_PTP, in efx_ptp_xmit_skb_mc()
1120 static void efx_ptp_drop_time_expired_events(struct efx_nic *efx) in efx_ptp_drop_time_expired_events() argument
1122 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_drop_time_expired_events()
1139 netif_warn(efx, hw, efx->net_dev, in efx_ptp_drop_time_expired_events()
1147 static enum ptp_packet_state efx_ptp_match_rx(struct efx_nic *efx, in efx_ptp_match_rx() argument
1150 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_match_rx()
1196 static void efx_ptp_process_events(struct efx_nic *efx, struct sk_buff_head *q) in efx_ptp_process_events() argument
1198 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_process_events()
1207 } else if (efx_ptp_match_rx(efx, skb) == in efx_ptp_process_events()
1223 static inline void efx_ptp_process_rx(struct efx_nic *efx, struct sk_buff *skb) in efx_ptp_process_rx() argument
1230 static void efx_ptp_remove_multicast_filters(struct efx_nic *efx) in efx_ptp_remove_multicast_filters() argument
1232 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_remove_multicast_filters()
1235 efx_filter_remove_id_safe(efx, EFX_FILTER_PRI_REQUIRED, in efx_ptp_remove_multicast_filters()
1237 efx_filter_remove_id_safe(efx, EFX_FILTER_PRI_REQUIRED, in efx_ptp_remove_multicast_filters()
1243 static int efx_ptp_insert_multicast_filters(struct efx_nic *efx) in efx_ptp_insert_multicast_filters() argument
1245 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_insert_multicast_filters()
1264 rc = efx_filter_insert_filter(efx, &rxfilter, true); in efx_ptp_insert_multicast_filters()
1278 rc = efx_filter_insert_filter(efx, &rxfilter, true); in efx_ptp_insert_multicast_filters()
1287 efx_filter_remove_id_safe(efx, EFX_FILTER_PRI_REQUIRED, in efx_ptp_insert_multicast_filters()
1292 static int efx_ptp_start(struct efx_nic *efx) in efx_ptp_start() argument
1294 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_start()
1299 rc = efx_ptp_insert_multicast_filters(efx); in efx_ptp_start()
1303 rc = efx_ptp_enable(efx); in efx_ptp_start()
1313 efx_ptp_remove_multicast_filters(efx); in efx_ptp_start()
1317 static int efx_ptp_stop(struct efx_nic *efx) in efx_ptp_stop() argument
1319 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_stop()
1327 rc = efx_ptp_disable(efx); in efx_ptp_stop()
1329 efx_ptp_remove_multicast_filters(efx); in efx_ptp_stop()
1332 efx_ptp_deliver_rx_queue(&efx->ptp_data->rxq); in efx_ptp_stop()
1333 skb_queue_purge(&efx->ptp_data->txq); in efx_ptp_stop()
1336 spin_lock_bh(&efx->ptp_data->evt_lock); in efx_ptp_stop()
1337 list_for_each_safe(cursor, next, &efx->ptp_data->evt_list) { in efx_ptp_stop()
1338 list_move(cursor, &efx->ptp_data->evt_free_list); in efx_ptp_stop()
1340 spin_unlock_bh(&efx->ptp_data->evt_lock); in efx_ptp_stop()
1345 static int efx_ptp_restart(struct efx_nic *efx) in efx_ptp_restart() argument
1347 if (efx->ptp_data && efx->ptp_data->enabled) in efx_ptp_restart()
1348 return efx_ptp_start(efx); in efx_ptp_restart()
1356 struct efx_nic *efx = ptp->efx; in efx_ptp_pps_worker() local
1359 if (efx_ptp_synchronize(efx, PTP_SYNC_ATTEMPTS)) in efx_ptp_pps_worker()
1371 struct efx_nic *efx = ptp_data->efx; in efx_ptp_worker() local
1376 efx_ptp_stop(efx); in efx_ptp_worker()
1377 efx_ptp_start(efx); in efx_ptp_worker()
1381 efx_ptp_drop_time_expired_events(efx); in efx_ptp_worker()
1384 efx_ptp_process_events(efx, &tempq); in efx_ptp_worker()
1387 ptp_data->xmit_skb(efx, skb); in efx_ptp_worker()
1390 efx_ptp_process_rx(efx, skb); in efx_ptp_worker()
1410 int efx_ptp_probe(struct efx_nic *efx, struct efx_channel *channel) in efx_ptp_probe() argument
1417 efx->ptp_data = ptp; in efx_ptp_probe()
1418 if (!efx->ptp_data) in efx_ptp_probe()
1421 ptp->efx = efx; in efx_ptp_probe()
1423 ptp->rx_ts_inline = efx_nic_rev(efx) >= EFX_REV_HUNT_A0; in efx_ptp_probe()
1425 rc = efx_nic_alloc_buffer(efx, &ptp->start, sizeof(int), GFP_KERNEL); in efx_ptp_probe()
1437 if (efx_ptp_use_mac_tx_timestamps(efx)) { in efx_ptp_probe()
1456 rc = efx_ptp_get_attributes(efx); in efx_ptp_probe()
1461 rc = efx_ptp_get_timestamp_corrections(efx); in efx_ptp_probe()
1465 if (efx->mcdi->fn_flags & in efx_ptp_probe()
1469 &efx->pci_dev->dev); in efx_ptp_probe()
1486 ptp_clock_unregister(efx->ptp_data->phc_clock); in efx_ptp_probe()
1489 destroy_workqueue(efx->ptp_data->workwq); in efx_ptp_probe()
1492 efx_nic_free_buffer(efx, &ptp->start); in efx_ptp_probe()
1495 kfree(efx->ptp_data); in efx_ptp_probe()
1496 efx->ptp_data = NULL; in efx_ptp_probe()
1508 struct efx_nic *efx = channel->efx; in efx_ptp_probe_channel() local
1514 rc = efx_ptp_probe(efx, channel); in efx_ptp_probe_channel()
1521 netif_warn(efx, drv, efx->net_dev, in efx_ptp_probe_channel()
1526 void efx_ptp_remove(struct efx_nic *efx) in efx_ptp_remove() argument
1528 if (!efx->ptp_data) in efx_ptp_remove()
1531 (void)efx_ptp_disable(efx); in efx_ptp_remove()
1533 cancel_work_sync(&efx->ptp_data->work); in efx_ptp_remove()
1534 if (efx->ptp_data->pps_workwq) in efx_ptp_remove()
1535 cancel_work_sync(&efx->ptp_data->pps_work); in efx_ptp_remove()
1537 skb_queue_purge(&efx->ptp_data->rxq); in efx_ptp_remove()
1538 skb_queue_purge(&efx->ptp_data->txq); in efx_ptp_remove()
1540 if (efx->ptp_data->phc_clock) { in efx_ptp_remove()
1541 destroy_workqueue(efx->ptp_data->pps_workwq); in efx_ptp_remove()
1542 ptp_clock_unregister(efx->ptp_data->phc_clock); in efx_ptp_remove()
1545 destroy_workqueue(efx->ptp_data->workwq); in efx_ptp_remove()
1547 efx_nic_free_buffer(efx, &efx->ptp_data->start); in efx_ptp_remove()
1548 kfree(efx->ptp_data); in efx_ptp_remove()
1549 efx->ptp_data = NULL; in efx_ptp_remove()
1554 efx_ptp_remove(channel->efx); in efx_ptp_remove_channel()
1560 snprintf(buf, len, "%s-ptp", channel->efx->name); in efx_ptp_get_channel_name()
1566 bool efx_ptp_is_ptp_tx(struct efx_nic *efx, struct sk_buff *skb) in efx_ptp_is_ptp_tx() argument
1568 return efx->ptp_data && in efx_ptp_is_ptp_tx()
1569 efx->ptp_data->enabled && in efx_ptp_is_ptp_tx()
1587 struct efx_nic *efx = channel->efx; in efx_ptp_rx() local
1588 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_rx()
1672 int efx_ptp_tx(struct efx_nic *efx, struct sk_buff *skb) in efx_ptp_tx() argument
1674 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_tx()
1686 int efx_ptp_get_mode(struct efx_nic *efx) in efx_ptp_get_mode() argument
1688 return efx->ptp_data->mode; in efx_ptp_get_mode()
1691 int efx_ptp_change_mode(struct efx_nic *efx, bool enable_wanted, in efx_ptp_change_mode() argument
1694 if ((enable_wanted != efx->ptp_data->enabled) || in efx_ptp_change_mode()
1695 (enable_wanted && (efx->ptp_data->mode != new_mode))) { in efx_ptp_change_mode()
1700 if (efx->ptp_data->enabled && in efx_ptp_change_mode()
1701 (efx->ptp_data->mode != new_mode)) { in efx_ptp_change_mode()
1702 efx->ptp_data->enabled = false; in efx_ptp_change_mode()
1703 rc = efx_ptp_stop(efx); in efx_ptp_change_mode()
1712 efx->ptp_data->mode = new_mode; in efx_ptp_change_mode()
1713 if (netif_running(efx->net_dev)) in efx_ptp_change_mode()
1714 rc = efx_ptp_start(efx); in efx_ptp_change_mode()
1716 rc = efx_ptp_synchronize(efx, in efx_ptp_change_mode()
1719 efx_ptp_stop(efx); in efx_ptp_change_mode()
1722 rc = efx_ptp_stop(efx); in efx_ptp_change_mode()
1728 efx->ptp_data->enabled = enable_wanted; in efx_ptp_change_mode()
1734 static int efx_ptp_ts_init(struct efx_nic *efx, struct hwtstamp_config *init) in efx_ptp_ts_init() argument
1745 rc = efx->type->ptp_set_ts_config(efx, init); in efx_ptp_ts_init()
1749 efx->ptp_data->config = *init; in efx_ptp_ts_init()
1753 void efx_ptp_get_ts_info(struct efx_nic *efx, struct ethtool_ts_info *ts_info) in efx_ptp_get_ts_info() argument
1755 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_get_ts_info()
1756 struct efx_nic *primary = efx->primary; in efx_ptp_get_ts_info()
1769 if (efx_ptp_use_mac_tx_timestamps(efx)) { in efx_ptp_get_ts_info()
1770 struct efx_ef10_nic_data *nic_data = efx->nic_data; in efx_ptp_get_ts_info()
1781 ts_info->rx_filters = ptp->efx->type->hwtstamp_filters; in efx_ptp_get_ts_info()
1784 int efx_ptp_set_ts_config(struct efx_nic *efx, struct ifreq *ifr) in efx_ptp_set_ts_config() argument
1790 if (!efx->ptp_data) in efx_ptp_set_ts_config()
1796 rc = efx_ptp_ts_init(efx, &config); in efx_ptp_set_ts_config()
1804 int efx_ptp_get_ts_config(struct efx_nic *efx, struct ifreq *ifr) in efx_ptp_get_ts_config() argument
1806 if (!efx->ptp_data) in efx_ptp_get_ts_config()
1809 return copy_to_user(ifr->ifr_data, &efx->ptp_data->config, in efx_ptp_get_ts_config()
1810 sizeof(efx->ptp_data->config)) ? -EFAULT : 0; in efx_ptp_get_ts_config()
1813 static void ptp_event_failure(struct efx_nic *efx, int expected_frag_len) in ptp_event_failure() argument
1815 struct efx_ptp_data *ptp = efx->ptp_data; in ptp_event_failure()
1817 netif_err(efx, hw, efx->net_dev, in ptp_event_failure()
1828 static void ptp_event_rx(struct efx_nic *efx, struct efx_ptp_data *ptp) in ptp_event_rx() argument
1836 ptp_event_failure(efx, 3); in ptp_event_rx()
1853 evt->hwtimestamp = efx->ptp_data->nic_to_kernel_time( in ptp_event_rx()
1863 netif_err(efx, rx_err, efx->net_dev, "PTP event queue overflow\n"); in ptp_event_rx()
1868 static void ptp_event_fault(struct efx_nic *efx, struct efx_ptp_data *ptp) in ptp_event_fault() argument
1872 ptp_event_failure(efx, 1); in ptp_event_fault()
1876 netif_err(efx, hw, efx->net_dev, "PTP error %d\n", code); in ptp_event_fault()
1879 static void ptp_event_pps(struct efx_nic *efx, struct efx_ptp_data *ptp) in ptp_event_pps() argument
1885 void efx_ptp_event(struct efx_nic *efx, efx_qword_t *ev) in efx_ptp_event() argument
1887 struct efx_ptp_data *ptp = efx->ptp_data; in efx_ptp_event()
1891 if (!efx->ptp_warned) { in efx_ptp_event()
1892 netif_warn(efx, drv, efx->net_dev, in efx_ptp_event()
1894 efx->ptp_warned = true; in efx_ptp_event()
1905 netif_err(efx, hw, efx->net_dev, in efx_ptp_event()
1915 ptp_event_rx(efx, ptp); in efx_ptp_event()
1918 ptp_event_fault(efx, ptp); in efx_ptp_event()
1921 ptp_event_pps(efx, ptp); in efx_ptp_event()
1924 netif_err(efx, hw, efx->net_dev, in efx_ptp_event()
1930 netif_err(efx, hw, efx->net_dev, in efx_ptp_event()
1938 struct efx_nic *efx = channel->efx; in efx_time_sync_event() local
1939 struct efx_ptp_data *ptp = efx->ptp_data; in efx_time_sync_event()
1959 static inline u32 efx_rx_buf_timestamp_minor(struct efx_nic *efx, const u8 *eh) in efx_rx_buf_timestamp_minor() argument
1962 return __le32_to_cpup((const __le32 *)(eh + efx->rx_packet_ts_offset)); in efx_rx_buf_timestamp_minor()
1964 const u8 *data = eh + efx->rx_packet_ts_offset; in efx_rx_buf_timestamp_minor()
1975 struct efx_nic *efx = channel->efx; in __efx_rx_skb_attach_timestamp() local
1976 struct efx_ptp_data *ptp = efx->ptp_data; in __efx_rx_skb_attach_timestamp()
1984 pkt_timestamp_minor = efx_rx_buf_timestamp_minor(efx, skb_mac_header(skb)); in __efx_rx_skb_attach_timestamp()
2014 netif_vdbg(efx, drv, efx->net_dev, in __efx_rx_skb_attach_timestamp()
2034 struct efx_nic *efx = ptp_data->efx; in efx_phc_adjfreq() local
2054 rc = efx_mcdi_rpc(efx, MC_CMD_PTP, inadj, sizeof(inadj), in efx_phc_adjfreq()
2069 struct efx_nic *efx = ptp_data->efx; in efx_phc_adjtime() local
2072 efx->ptp_data->ns_to_nic_time(delta, &nic_major, &nic_minor); in efx_phc_adjtime()
2079 return efx_mcdi_rpc(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_phc_adjtime()
2088 struct efx_nic *efx = ptp_data->efx; in efx_phc_gettime() local
2097 rc = efx_mcdi_rpc(efx, MC_CMD_PTP, inbuf, sizeof(inbuf), in efx_phc_gettime()
2158 void efx_ptp_defer_probe_with_channel(struct efx_nic *efx) in efx_ptp_defer_probe_with_channel() argument
2163 if (efx_ptp_disable(efx) == 0) in efx_ptp_defer_probe_with_channel()
2164 efx->extra_channel_type[EFX_EXTRA_CHANNEL_PTP] = in efx_ptp_defer_probe_with_channel()
2168 void efx_ptp_start_datapath(struct efx_nic *efx) in efx_ptp_start_datapath() argument
2170 if (efx_ptp_restart(efx)) in efx_ptp_start_datapath()
2171 netif_err(efx, drv, efx->net_dev, "Failed to restart PTP.\n"); in efx_ptp_start_datapath()
2173 if (efx->type->ptp_set_ts_sync_events) in efx_ptp_start_datapath()
2174 efx->type->ptp_set_ts_sync_events(efx, true, true); in efx_ptp_start_datapath()
2177 void efx_ptp_stop_datapath(struct efx_nic *efx) in efx_ptp_stop_datapath() argument
2180 if (efx->type->ptp_set_ts_sync_events) in efx_ptp_stop_datapath()
2181 efx->type->ptp_set_ts_sync_events(efx, false, true); in efx_ptp_stop_datapath()
2182 efx_ptp_stop(efx); in efx_ptp_stop_datapath()