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

Function axgbe_update_tstamp_time

dpdk/drivers/net/axgbe/axgbe_ethdev.c:1511–1539  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1509}
1510
1511static void
1512axgbe_update_tstamp_time(struct axgbe_port *pdata,
1513 unsigned int sec, unsigned int nsec, int addsub)
1514{
1515 unsigned int count = 100;
1516 uint32_t sub_val = 0;
1517 uint32_t sub_val_sec = 0xFFFFFFFF;
1518 uint32_t sub_val_nsec = 0x3B9ACA00;
1519
1520 if (addsub) {
1521 if (sec)
1522 sub_val = sub_val_sec - (sec - 1);
1523 else
1524 sub_val = sec;
1525
1526 AXGMAC_IOWRITE(pdata, MAC_STSUR, sub_val);
1527 sub_val = sub_val_nsec - nsec;
1528 AXGMAC_IOWRITE(pdata, MAC_STNUR, sub_val);
1529 AXGMAC_IOWRITE_BITS(pdata, MAC_STNUR, ADDSUB, 1);
1530 } else {
1531 AXGMAC_IOWRITE(pdata, MAC_STSUR, sec);
1532 AXGMAC_IOWRITE_BITS(pdata, MAC_STNUR, ADDSUB, 0);
1533 AXGMAC_IOWRITE(pdata, MAC_STNUR, nsec);
1534 }
1535 AXGMAC_IOWRITE_BITS(pdata, MAC_TSCR, TSUPDT, 1);
1536 /* Wait for time update to complete */
1537 while (--count && AXGMAC_IOREAD_BITS(pdata, MAC_TSCR, TSUPDT))
1538 rte_delay_ms(1);
1539}
1540
1541static inline uint64_t
1542div_u64_rem(uint64_t dividend, uint32_t divisor, uint32_t *remainder)

Callers 1

Calls 1

rte_delay_msFunction · 0.85

Tested by

no test coverage detected