]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: mvneta: add support for hardware timestamps
authorRussell King <rmk+kernel@armlinux.org.uk>
Wed, 10 Sep 2025 12:50:46 +0000 (13:50 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 13 Sep 2025 00:03:36 +0000 (17:03 -0700)
Add support for hardware timestamps in (e.g.) the PHY by calling
skb_tx_timestamp() as close as reasonably possible to the point that
the hardware is instructed to send the queued packets.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1uwKHe-00000004glk-3nkJ@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/mvneta.c

index 7351e98d73f41017b508dc26fc9562e9738fae09..89ccb8eb82c7def61f6a4ffdfb7b1d96af3355e2 100644 (file)
@@ -2984,6 +2984,13 @@ out:
                if (txq->count >= txq->tx_stop_threshold)
                        netif_tx_stop_queue(nq);
 
+               /* This is not really the true transmit point, since we batch
+                * up several before hitting the hardware, but is the best we
+                * can do without more complexity to walk the packets in the
+                * pending section of the transmit queue.
+                */
+               skb_tx_timestamp(skb);
+
                if (!netdev_xmit_more() || netif_xmit_stopped(nq) ||
                    txq->pending + frags > MVNETA_TXQ_DEC_SENT_MASK)
                        mvneta_txq_pend_desc_add(pp, txq, frags);
@@ -5356,6 +5363,7 @@ static const struct ethtool_ops mvneta_eth_tool_ops = {
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
        .get_wol        = mvneta_ethtool_get_wol,
        .set_wol        = mvneta_ethtool_set_wol,
+       .get_ts_info    = ethtool_op_get_ts_info,
        .get_eee        = mvneta_ethtool_get_eee,
        .set_eee        = mvneta_ethtool_set_eee,
 };