Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'rx-software-timestamp-for-all-round-3'

Gal Pressman says:

====================
RX software timestamp for all - round 3

Rounds 1 & 2 of drivers conversion were merged [1][2], this round will
complete the work.

[1] https://lore.kernel.org/netdev/20240901112803.212753-1-gal@nvidia.com/
[2] https://lore.kernel.org/netdev/20240904074922.256275-1-gal@nvidia.com/
====================

Link: https://patch.msgid.link/20240906144632.404651-1-gal@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+21 -72
-3
drivers/net/bonding/bond_main.c
··· 5886 5886 if (real_dev) { 5887 5887 ret = ethtool_get_ts_info_by_layer(real_dev, info); 5888 5888 } else { 5889 - info->phc_index = -1; 5890 - info->so_timestamping = SOF_TIMESTAMPING_RX_SOFTWARE | 5891 - SOF_TIMESTAMPING_SOFTWARE; 5892 5889 /* Check if all slaves support software tx timestamping */ 5893 5890 rcu_read_lock(); 5894 5891 bond_for_each_slave_rcu(bond, slave, iter) {
-4
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
··· 582 582 struct xgbe_prv_data *pdata = netdev_priv(netdev); 583 583 584 584 ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 585 - SOF_TIMESTAMPING_RX_SOFTWARE | 586 - SOF_TIMESTAMPING_SOFTWARE | 587 585 SOF_TIMESTAMPING_TX_HARDWARE | 588 586 SOF_TIMESTAMPING_RX_HARDWARE | 589 587 SOF_TIMESTAMPING_RAW_HARDWARE; 590 588 591 589 if (pdata->ptp_clock) 592 590 ts_info->phc_index = ptp_clock_index(pdata->ptp_clock); 593 - else 594 - ts_info->phc_index = -1; 595 591 596 592 ts_info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON); 597 593 ts_info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
+1 -4
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
··· 5043 5043 struct bnxt_ptp_cfg *ptp; 5044 5044 5045 5045 ptp = bp->ptp_cfg; 5046 - info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 5047 - SOF_TIMESTAMPING_RX_SOFTWARE | 5048 - SOF_TIMESTAMPING_SOFTWARE; 5046 + info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE; 5049 5047 5050 - info->phc_index = -1; 5051 5048 if (!ptp) 5052 5049 return 0; 5053 5050
+1 -5
drivers/net/ethernet/broadcom/tg3.c
··· 6145 6145 { 6146 6146 struct tg3 *tp = netdev_priv(dev); 6147 6147 6148 - info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 6149 - SOF_TIMESTAMPING_RX_SOFTWARE | 6150 - SOF_TIMESTAMPING_SOFTWARE; 6148 + info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE; 6151 6149 6152 6150 if (tg3_flag(tp, PTP_CAPABLE)) { 6153 6151 info->so_timestamping |= SOF_TIMESTAMPING_TX_HARDWARE | ··· 6155 6157 6156 6158 if (tp->ptp_clock) 6157 6159 info->phc_index = ptp_clock_index(tp->ptp_clock); 6158 - else 6159 - info->phc_index = -1; 6160 6160 6161 6161 info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON); 6162 6162
+2 -3
drivers/net/ethernet/cadence/macb_main.c
··· 3410 3410 3411 3411 info->so_timestamping = 3412 3412 SOF_TIMESTAMPING_TX_SOFTWARE | 3413 - SOF_TIMESTAMPING_RX_SOFTWARE | 3414 - SOF_TIMESTAMPING_SOFTWARE | 3415 3413 SOF_TIMESTAMPING_TX_HARDWARE | 3416 3414 SOF_TIMESTAMPING_RX_HARDWARE | 3417 3415 SOF_TIMESTAMPING_RAW_HARDWARE; ··· 3421 3423 (1 << HWTSTAMP_FILTER_NONE) | 3422 3424 (1 << HWTSTAMP_FILTER_ALL); 3423 3425 3424 - info->phc_index = bp->ptp_clock ? ptp_clock_index(bp->ptp_clock) : -1; 3426 + if (bp->ptp_clock) 3427 + info->phc_index = ptp_clock_index(bp->ptp_clock); 3425 3428 3426 3429 return 0; 3427 3430 }
+7 -9
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
··· 2496 2496 return ret; 2497 2497 } 2498 2498 2499 + #ifdef PTP_HARDWARE_TIMESTAMPING 2499 2500 static int lio_get_ts_info(struct net_device *netdev, 2500 2501 struct kernel_ethtool_ts_info *info) 2501 2502 { 2502 2503 struct lio *lio = GET_LIO(netdev); 2503 2504 2504 2505 info->so_timestamping = 2505 - #ifdef PTP_HARDWARE_TIMESTAMPING 2506 2506 SOF_TIMESTAMPING_TX_HARDWARE | 2507 2507 SOF_TIMESTAMPING_RX_HARDWARE | 2508 2508 SOF_TIMESTAMPING_RAW_HARDWARE | 2509 - SOF_TIMESTAMPING_TX_SOFTWARE | 2510 - #endif 2511 - SOF_TIMESTAMPING_RX_SOFTWARE | 2512 - SOF_TIMESTAMPING_SOFTWARE; 2509 + SOF_TIMESTAMPING_TX_SOFTWARE; 2513 2510 2514 2511 if (lio->ptp_clock) 2515 2512 info->phc_index = ptp_clock_index(lio->ptp_clock); 2516 - else 2517 - info->phc_index = -1; 2518 2513 2519 - #ifdef PTP_HARDWARE_TIMESTAMPING 2520 2514 info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON); 2521 2515 2522 2516 info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) | 2523 2517 (1 << HWTSTAMP_FILTER_PTP_V1_L4_EVENT) | 2524 2518 (1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) | 2525 2519 (1 << HWTSTAMP_FILTER_PTP_V2_L4_EVENT); 2526 - #endif 2527 2520 2528 2521 return 0; 2529 2522 } 2523 + #endif 2530 2524 2531 2525 /* Return register dump len. */ 2532 2526 static int lio_get_regs_len(struct net_device *dev) ··· 3140 3146 .set_coalesce = lio_set_intr_coalesce, 3141 3147 .get_priv_flags = lio_get_priv_flags, 3142 3148 .set_priv_flags = lio_set_priv_flags, 3149 + #ifdef PTP_HARDWARE_TIMESTAMPING 3143 3150 .get_ts_info = lio_get_ts_info, 3151 + #endif 3144 3152 }; 3145 3153 3146 3154 static const struct ethtool_ops lio_vf_ethtool_ops = { ··· 3165 3169 .set_coalesce = lio_set_intr_coalesce, 3166 3170 .get_priv_flags = lio_get_priv_flags, 3167 3171 .set_priv_flags = lio_set_priv_flags, 3172 + #ifdef PTP_HARDWARE_TIMESTAMPING 3168 3173 .get_ts_info = lio_get_ts_info, 3174 + #endif 3169 3175 }; 3170 3176 3171 3177 void liquidio_set_ethtool_ops(struct net_device *netdev)
-2
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
··· 844 844 return ethtool_op_get_ts_info(netdev, info); 845 845 846 846 info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 847 - SOF_TIMESTAMPING_RX_SOFTWARE | 848 - SOF_TIMESTAMPING_SOFTWARE | 849 847 SOF_TIMESTAMPING_TX_HARDWARE | 850 848 SOF_TIMESTAMPING_RX_HARDWARE | 851 849 SOF_TIMESTAMPING_RAW_HARDWARE;
+1 -3
drivers/net/ethernet/cisco/enic/enic_ethtool.c
··· 601 601 static int enic_get_ts_info(struct net_device *netdev, 602 602 struct kernel_ethtool_ts_info *info) 603 603 { 604 - info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 605 - SOF_TIMESTAMPING_RX_SOFTWARE | 606 - SOF_TIMESTAMPING_SOFTWARE; 604 + info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE; 607 605 608 606 return 0; 609 607 }
+1 -4
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
··· 1042 1042 static int fun_get_ts_info(struct net_device *netdev, 1043 1043 struct kernel_ethtool_ts_info *info) 1044 1044 { 1045 - info->so_timestamping = SOF_TIMESTAMPING_RX_SOFTWARE | 1046 - SOF_TIMESTAMPING_RX_HARDWARE | 1045 + info->so_timestamping = SOF_TIMESTAMPING_RX_HARDWARE | 1047 1046 SOF_TIMESTAMPING_TX_SOFTWARE | 1048 - SOF_TIMESTAMPING_SOFTWARE | 1049 1047 SOF_TIMESTAMPING_RAW_HARDWARE; 1050 - info->phc_index = -1; 1051 1048 info->tx_types = BIT(HWTSTAMP_TX_OFF); 1052 1049 info->rx_filters = BIT(HWTSTAMP_FILTER_NONE) | BIT(HWTSTAMP_FILTER_ALL); 1053 1050 return 0;
+4 -8
drivers/net/ethernet/mscc/ocelot_ptp.c
··· 582 582 int ocelot_get_ts_info(struct ocelot *ocelot, int port, 583 583 struct kernel_ethtool_ts_info *info) 584 584 { 585 - info->phc_index = ocelot->ptp_clock ? 586 - ptp_clock_index(ocelot->ptp_clock) : -1; 587 - if (info->phc_index == -1) { 588 - info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE | 589 - SOF_TIMESTAMPING_RX_SOFTWARE | 590 - SOF_TIMESTAMPING_SOFTWARE; 585 + if (ocelot->ptp_clock) { 586 + info->phc_index = ptp_clock_index(ocelot->ptp_clock); 587 + } else { 588 + info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE; 591 589 return 0; 592 590 } 593 591 info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE | 594 - SOF_TIMESTAMPING_RX_SOFTWARE | 595 - SOF_TIMESTAMPING_SOFTWARE | 596 592 SOF_TIMESTAMPING_TX_HARDWARE | 597 593 SOF_TIMESTAMPING_RX_HARDWARE | 598 594 SOF_TIMESTAMPING_RAW_HARDWARE;
+1 -8
drivers/net/ethernet/qlogic/qede/qede_ptp.c
··· 326 326 struct qede_ptp *ptp = edev->ptp; 327 327 328 328 if (!ptp) { 329 - info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 330 - SOF_TIMESTAMPING_RX_SOFTWARE | 331 - SOF_TIMESTAMPING_SOFTWARE; 332 - info->phc_index = -1; 329 + info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE; 333 330 334 331 return 0; 335 332 } 336 333 337 334 info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 338 - SOF_TIMESTAMPING_RX_SOFTWARE | 339 - SOF_TIMESTAMPING_SOFTWARE | 340 335 SOF_TIMESTAMPING_TX_HARDWARE | 341 336 SOF_TIMESTAMPING_RX_HARDWARE | 342 337 SOF_TIMESTAMPING_RAW_HARDWARE; 343 338 344 339 if (ptp->clock) 345 340 info->phc_index = ptp_clock_index(ptp->clock); 346 - else 347 - info->phc_index = -1; 348 341 349 342 info->rx_filters = BIT(HWTSTAMP_FILTER_NONE) | 350 343 BIT(HWTSTAMP_FILTER_PTP_V1_L4_EVENT) |
-5
drivers/net/ethernet/sfc/ethtool.c
··· 230 230 { 231 231 struct efx_nic *efx = efx_netdev_priv(net_dev); 232 232 233 - /* Software capabilities */ 234 - ts_info->so_timestamping = (SOF_TIMESTAMPING_RX_SOFTWARE | 235 - SOF_TIMESTAMPING_SOFTWARE); 236 - ts_info->phc_index = -1; 237 - 238 233 efx_ptp_get_ts_info(efx, ts_info); 239 234 return 0; 240 235 }
-5
drivers/net/ethernet/sfc/siena/ethtool.c
··· 230 230 { 231 231 struct efx_nic *efx = netdev_priv(net_dev); 232 232 233 - /* Software capabilities */ 234 - ts_info->so_timestamping = (SOF_TIMESTAMPING_RX_SOFTWARE | 235 - SOF_TIMESTAMPING_SOFTWARE); 236 - ts_info->phc_index = -1; 237 - 238 233 efx_siena_ptp_get_ts_info(efx, ts_info); 239 234 return 0; 240 235 }
+2 -2
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
··· 1200 1200 1201 1201 info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | 1202 1202 SOF_TIMESTAMPING_TX_HARDWARE | 1203 - SOF_TIMESTAMPING_RX_SOFTWARE | 1204 1203 SOF_TIMESTAMPING_RX_HARDWARE | 1205 - SOF_TIMESTAMPING_SOFTWARE | 1206 1204 SOF_TIMESTAMPING_RAW_HARDWARE; 1207 1205 1208 1206 if (priv->ptp_clock) 1209 1207 info->phc_index = ptp_clock_index(priv->ptp_clock); 1208 + else 1209 + info->phc_index = 0; 1210 1210 1211 1211 info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON); 1212 1212
+1 -3
drivers/net/ethernet/xscale/ixp4xx_eth.c
··· 1026 1026 1027 1027 if (info->phc_index < 0) { 1028 1028 info->so_timestamping = 1029 - SOF_TIMESTAMPING_TX_SOFTWARE | 1030 - SOF_TIMESTAMPING_RX_SOFTWARE | 1031 - SOF_TIMESTAMPING_SOFTWARE; 1029 + SOF_TIMESTAMPING_TX_SOFTWARE; 1032 1030 return 0; 1033 1031 } 1034 1032 info->so_timestamping =
-4
drivers/ptp/ptp_ines.c
··· 562 562 SOF_TIMESTAMPING_TX_HARDWARE | 563 563 SOF_TIMESTAMPING_TX_SOFTWARE | 564 564 SOF_TIMESTAMPING_RX_HARDWARE | 565 - SOF_TIMESTAMPING_RX_SOFTWARE | 566 - SOF_TIMESTAMPING_SOFTWARE | 567 565 SOF_TIMESTAMPING_RAW_HARDWARE; 568 - 569 - info->phc_index = -1; 570 566 571 567 info->tx_types = 572 568 (1 << HWTSTAMP_TX_OFF) |