MCPcopy Create free account
hub / github.com/F-Stack/f-stack / i40e_start_timecounters

Function i40e_start_timecounters

dpdk/drivers/net/i40e/i40e_ethdev.c:10316–10367  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10314}
10315
10316static void
10317i40e_start_timecounters(struct rte_eth_dev *dev)
10318{
10319 struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
10320 struct i40e_adapter *adapter = dev->data->dev_private;
10321 struct rte_eth_link link;
10322 uint32_t tsync_inc_l;
10323 uint32_t tsync_inc_h;
10324
10325 /* Get current link speed. */
10326 i40e_dev_link_update(dev, 1);
10327 rte_eth_linkstatus_get(dev, &link);
10328
10329 switch (link.link_speed) {
10330 case RTE_ETH_SPEED_NUM_40G:
10331 case RTE_ETH_SPEED_NUM_25G:
10332 tsync_inc_l = I40E_PTP_40GB_INCVAL & 0xFFFFFFFF;
10333 tsync_inc_h = I40E_PTP_40GB_INCVAL >> 32;
10334 break;
10335 case RTE_ETH_SPEED_NUM_10G:
10336 tsync_inc_l = I40E_PTP_10GB_INCVAL & 0xFFFFFFFF;
10337 tsync_inc_h = I40E_PTP_10GB_INCVAL >> 32;
10338 break;
10339 case RTE_ETH_SPEED_NUM_1G:
10340 tsync_inc_l = I40E_PTP_1GB_INCVAL & 0xFFFFFFFF;
10341 tsync_inc_h = I40E_PTP_1GB_INCVAL >> 32;
10342 break;
10343 default:
10344 tsync_inc_l = 0x0;
10345 tsync_inc_h = 0x0;
10346 }
10347
10348 /* Set the timesync increment value. */
10349 I40E_WRITE_REG(hw, I40E_PRTTSYN_INC_L, tsync_inc_l);
10350 I40E_WRITE_REG(hw, I40E_PRTTSYN_INC_H, tsync_inc_h);
10351
10352 memset(&adapter->systime_tc, 0, sizeof(struct rte_timecounter));
10353 memset(&adapter->rx_tstamp_tc, 0, sizeof(struct rte_timecounter));
10354 memset(&adapter->tx_tstamp_tc, 0, sizeof(struct rte_timecounter));
10355
10356 adapter->systime_tc.cc_mask = I40E_CYCLECOUNTER_MASK;
10357 adapter->systime_tc.cc_shift = 0;
10358 adapter->systime_tc.nsec_mask = 0;
10359
10360 adapter->rx_tstamp_tc.cc_mask = I40E_CYCLECOUNTER_MASK;
10361 adapter->rx_tstamp_tc.cc_shift = 0;
10362 adapter->rx_tstamp_tc.nsec_mask = 0;
10363
10364 adapter->tx_tstamp_tc.cc_mask = I40E_CYCLECOUNTER_MASK;
10365 adapter->tx_tstamp_tc.cc_shift = 0;
10366 adapter->tx_tstamp_tc.nsec_mask = 0;
10367}
10368
10369static int
10370i40e_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)

Callers 1

i40e_timesync_enableFunction · 0.85

Calls 3

i40e_dev_link_updateFunction · 0.85
rte_eth_linkstatus_getFunction · 0.85
memsetFunction · 0.85

Tested by

no test coverage detected