Commit 12d33733 authored by Gal Pressman's avatar Gal Pressman Committed by Jakub Kicinski

ethtool: RX software timestamp for all

All devices support SOF_TIMESTAMPING_RX_SOFTWARE by virtue of
net_timestamp_check() being called in the device independent code.

Move the responsibility of reporting SOF_TIMESTAMPING_RX_SOFTWARE and
SOF_TIMESTAMPING_SOFTWARE, and setting PHC index to -1 to the core.
Device drivers no longer need to use them.
Suggested-by: default avatarWillem de Bruijn <willemdebruijn.kernel@gmail.com>
Link: https://lore.kernel.org/netdev/661550e348224_23a2b2294f7@willemb.c.googlers.com.notmuch/Co-developed-by: default avatarRahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: default avatarRahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: default avatarGal Pressman <gal@nvidia.com>
Reviewed-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20240901112803.212753-2-gal@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 3bbefbbd
...@@ -692,20 +692,21 @@ int __ethtool_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info ...@@ -692,20 +692,21 @@ int __ethtool_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info
{ {
const struct ethtool_ops *ops = dev->ethtool_ops; const struct ethtool_ops *ops = dev->ethtool_ops;
struct phy_device *phydev = dev->phydev; struct phy_device *phydev = dev->phydev;
int err = 0;
memset(info, 0, sizeof(*info)); memset(info, 0, sizeof(*info));
info->cmd = ETHTOOL_GET_TS_INFO; info->cmd = ETHTOOL_GET_TS_INFO;
info->phc_index = -1;
if (phy_is_default_hwtstamp(phydev) && phy_has_tsinfo(phydev)) if (phy_is_default_hwtstamp(phydev) && phy_has_tsinfo(phydev))
return phy_ts_info(phydev, info); err = phy_ts_info(phydev, info);
if (ops->get_ts_info) else if (ops->get_ts_info)
return ops->get_ts_info(dev, info); err = ops->get_ts_info(dev, info);
info->so_timestamping = SOF_TIMESTAMPING_RX_SOFTWARE | info->so_timestamping |= SOF_TIMESTAMPING_RX_SOFTWARE |
SOF_TIMESTAMPING_SOFTWARE; SOF_TIMESTAMPING_SOFTWARE;
info->phc_index = -1;
return 0; return err;
} }
int ethtool_get_phc_vclocks(struct net_device *dev, int **vclock_index) int ethtool_get_phc_vclocks(struct net_device *dev, int **vclock_index)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment