[PATCH net] net: lan78xx: advertise tx software timestamping support

From: Markus Bloechl
Date: Tue May 18 2021 - 05:54:19 EST


lan78xx already calls skb_tx_timestamp() in its lan78xx_start_xmit().
Override .get_ts_info to also advertise this capability
(SOF_TIMESTAMPING_TX_SOFTWARE) via ethtool.

Signed-off-by: Markus Blöchl <markus.bloechl@xxxxxxxxxxxxx>
---

Notes:
The main motivation for this patch was that e.g. linuxptp refuses
to start if the driver lacks support for the required timestamping
features.

I also recognized that many usb ethernet drivers which use the usbnet
infrastructure do not override .get_ts_info accordingly, despite calling
skb_tx_timestamp() indirectly in their .ndo_start_xmit handler
via usbnet_start_xmit().
For most of them the .get_ts_info override from usbnet is lost when
they override .ethtool_ops again.
Should they all receive a similar patch?

drivers/net/usb/lan78xx.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 6acc5e904518..02bce40a67e5 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1645,6 +1645,7 @@ static const struct ethtool_ops lan78xx_ethtool_ops = {
.get_strings = lan78xx_get_strings,
.get_wol = lan78xx_get_wol,
.set_wol = lan78xx_set_wol,
+ .get_ts_info = ethtool_op_get_ts_info,
.get_eee = lan78xx_get_eee,
.set_eee = lan78xx_set_eee,
.get_pauseparam = lan78xx_get_pause,

base-commit: a6f8ee58a8e35f7e4380a5efce312e2a5bc27497