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>
This commit is contained in:
@@ -5886,9 +5886,6 @@ static int bond_ethtool_get_ts_info(struct net_device *bond_dev,
|
||||
if (real_dev) {
|
||||
ret = ethtool_get_ts_info_by_layer(real_dev, info);
|
||||
} else {
|
||||
info->phc_index = -1;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
/* Check if all slaves support software tx timestamping */
|
||||
rcu_read_lock();
|
||||
bond_for_each_slave_rcu(bond, slave, iter) {
|
||||
|
||||
@@ -582,16 +582,12 @@ static int xgbe_get_ts_info(struct net_device *netdev,
|
||||
struct xgbe_prv_data *pdata = netdev_priv(netdev);
|
||||
|
||||
ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
if (pdata->ptp_clock)
|
||||
ts_info->phc_index = ptp_clock_index(pdata->ptp_clock);
|
||||
else
|
||||
ts_info->phc_index = -1;
|
||||
|
||||
ts_info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
|
||||
ts_info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
|
||||
|
||||
@@ -5043,11 +5043,8 @@ static int bnxt_get_ts_info(struct net_device *dev,
|
||||
struct bnxt_ptp_cfg *ptp;
|
||||
|
||||
ptp = bp->ptp_cfg;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
|
||||
info->phc_index = -1;
|
||||
if (!ptp)
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -6145,9 +6145,7 @@ static int tg3_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info
|
||||
{
|
||||
struct tg3 *tp = netdev_priv(dev);
|
||||
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
|
||||
if (tg3_flag(tp, PTP_CAPABLE)) {
|
||||
info->so_timestamping |= SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
@@ -6157,8 +6155,6 @@ static int tg3_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info
|
||||
|
||||
if (tp->ptp_clock)
|
||||
info->phc_index = ptp_clock_index(tp->ptp_clock);
|
||||
else
|
||||
info->phc_index = -1;
|
||||
|
||||
info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
|
||||
|
||||
|
||||
@@ -3410,8 +3410,6 @@ static int gem_get_ts_info(struct net_device *dev,
|
||||
|
||||
info->so_timestamping =
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
@@ -3423,7 +3421,8 @@ static int gem_get_ts_info(struct net_device *dev,
|
||||
(1 << HWTSTAMP_FILTER_NONE) |
|
||||
(1 << HWTSTAMP_FILTER_ALL);
|
||||
|
||||
info->phc_index = bp->ptp_clock ? ptp_clock_index(bp->ptp_clock) : -1;
|
||||
if (bp->ptp_clock)
|
||||
info->phc_index = ptp_clock_index(bp->ptp_clock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2496,37 +2496,31 @@ ret_intrmod:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef PTP_HARDWARE_TIMESTAMPING
|
||||
static int lio_get_ts_info(struct net_device *netdev,
|
||||
struct kernel_ethtool_ts_info *info)
|
||||
{
|
||||
struct lio *lio = GET_LIO(netdev);
|
||||
|
||||
info->so_timestamping =
|
||||
#ifdef PTP_HARDWARE_TIMESTAMPING
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE |
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
#endif
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
|
||||
if (lio->ptp_clock)
|
||||
info->phc_index = ptp_clock_index(lio->ptp_clock);
|
||||
else
|
||||
info->phc_index = -1;
|
||||
|
||||
#ifdef PTP_HARDWARE_TIMESTAMPING
|
||||
info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
|
||||
|
||||
info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
|
||||
(1 << HWTSTAMP_FILTER_PTP_V1_L4_EVENT) |
|
||||
(1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |
|
||||
(1 << HWTSTAMP_FILTER_PTP_V2_L4_EVENT);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Return register dump len. */
|
||||
static int lio_get_regs_len(struct net_device *dev)
|
||||
@@ -3146,7 +3140,9 @@ static const struct ethtool_ops lio_ethtool_ops = {
|
||||
.set_coalesce = lio_set_intr_coalesce,
|
||||
.get_priv_flags = lio_get_priv_flags,
|
||||
.set_priv_flags = lio_set_priv_flags,
|
||||
#ifdef PTP_HARDWARE_TIMESTAMPING
|
||||
.get_ts_info = lio_get_ts_info,
|
||||
#endif
|
||||
};
|
||||
|
||||
static const struct ethtool_ops lio_vf_ethtool_ops = {
|
||||
@@ -3169,7 +3165,9 @@ static const struct ethtool_ops lio_vf_ethtool_ops = {
|
||||
.set_coalesce = lio_set_intr_coalesce,
|
||||
.get_priv_flags = lio_get_priv_flags,
|
||||
.set_priv_flags = lio_set_priv_flags,
|
||||
#ifdef PTP_HARDWARE_TIMESTAMPING
|
||||
.get_ts_info = lio_get_ts_info,
|
||||
#endif
|
||||
};
|
||||
|
||||
void liquidio_set_ethtool_ops(struct net_device *netdev)
|
||||
|
||||
@@ -844,8 +844,6 @@ static int nicvf_get_ts_info(struct net_device *netdev,
|
||||
return ethtool_op_get_ts_info(netdev, info);
|
||||
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
@@ -601,9 +601,7 @@ static int enic_set_rxfh(struct net_device *netdev,
|
||||
static int enic_get_ts_info(struct net_device *netdev,
|
||||
struct kernel_ethtool_ts_info *info)
|
||||
{
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1042,12 +1042,9 @@ static int fun_set_rxfh(struct net_device *netdev,
|
||||
static int fun_get_ts_info(struct net_device *netdev,
|
||||
struct kernel_ethtool_ts_info *info)
|
||||
{
|
||||
info->so_timestamping = SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
info->so_timestamping = SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
info->phc_index = -1;
|
||||
info->tx_types = BIT(HWTSTAMP_TX_OFF);
|
||||
info->rx_filters = BIT(HWTSTAMP_FILTER_NONE) | BIT(HWTSTAMP_FILTER_ALL);
|
||||
return 0;
|
||||
|
||||
@@ -582,17 +582,13 @@ EXPORT_SYMBOL(ocelot_hwstamp_set);
|
||||
int ocelot_get_ts_info(struct ocelot *ocelot, int port,
|
||||
struct kernel_ethtool_ts_info *info)
|
||||
{
|
||||
info->phc_index = ocelot->ptp_clock ?
|
||||
ptp_clock_index(ocelot->ptp_clock) : -1;
|
||||
if (info->phc_index == -1) {
|
||||
info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
if (ocelot->ptp_clock) {
|
||||
info->phc_index = ptp_clock_index(ocelot->ptp_clock);
|
||||
} else {
|
||||
info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
return 0;
|
||||
}
|
||||
info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
@@ -326,25 +326,18 @@ int qede_ptp_get_ts_info(struct qede_dev *edev, struct kernel_ethtool_ts_info *i
|
||||
struct qede_ptp *ptp = edev->ptp;
|
||||
|
||||
if (!ptp) {
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
info->phc_index = -1;
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
if (ptp->clock)
|
||||
info->phc_index = ptp_clock_index(ptp->clock);
|
||||
else
|
||||
info->phc_index = -1;
|
||||
|
||||
info->rx_filters = BIT(HWTSTAMP_FILTER_NONE) |
|
||||
BIT(HWTSTAMP_FILTER_PTP_V1_L4_EVENT) |
|
||||
|
||||
@@ -230,11 +230,6 @@ static int efx_ethtool_get_ts_info(struct net_device *net_dev,
|
||||
{
|
||||
struct efx_nic *efx = efx_netdev_priv(net_dev);
|
||||
|
||||
/* Software capabilities */
|
||||
ts_info->so_timestamping = (SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE);
|
||||
ts_info->phc_index = -1;
|
||||
|
||||
efx_ptp_get_ts_info(efx, ts_info);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -230,11 +230,6 @@ static int efx_ethtool_get_ts_info(struct net_device *net_dev,
|
||||
{
|
||||
struct efx_nic *efx = netdev_priv(net_dev);
|
||||
|
||||
/* Software capabilities */
|
||||
ts_info->so_timestamping = (SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE);
|
||||
ts_info->phc_index = -1;
|
||||
|
||||
efx_siena_ptp_get_ts_info(efx, ts_info);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1200,13 +1200,13 @@ static int stmmac_get_ts_info(struct net_device *dev,
|
||||
|
||||
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
if (priv->ptp_clock)
|
||||
info->phc_index = ptp_clock_index(priv->ptp_clock);
|
||||
else
|
||||
info->phc_index = 0;
|
||||
|
||||
info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
|
||||
|
||||
|
||||
@@ -1026,9 +1026,7 @@ static int ixp4xx_get_ts_info(struct net_device *dev,
|
||||
|
||||
if (info->phc_index < 0) {
|
||||
info->so_timestamping =
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE;
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE;
|
||||
return 0;
|
||||
}
|
||||
info->so_timestamping =
|
||||
|
||||
@@ -562,12 +562,8 @@ static int ines_ts_info(struct mii_timestamper *mii_ts,
|
||||
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||
SOF_TIMESTAMPING_SOFTWARE |
|
||||
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||
|
||||
info->phc_index = -1;
|
||||
|
||||
info->tx_types =
|
||||
(1 << HWTSTAMP_TX_OFF) |
|
||||
(1 << HWTSTAMP_TX_ON) |
|
||||
|
||||
Reference in New Issue
Block a user