Commit 3ea308da authored by Russell King's avatar Russell King Committed by Jakub Kicinski
Browse files

net: mvpp2: add support for hardware timestamps



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.

As this also introduces software timestamping support, report those
capabilities via the .get_ts_info() method.

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1uy82E-00000005Sll-0SSy@rmk-PC.armlinux.org.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 5ed994dd
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -4439,6 +4439,8 @@ static netdev_tx_t mvpp2_tx(struct sk_buff *skb, struct net_device *dev)
		txq_pcpu->count += frags;
		aggr_txq->count += frags;

		skb_tx_timestamp(skb);

		/* Enable transmit */
		wmb();
		mvpp2_aggr_txq_pend_desc_add(port, frags);
@@ -5252,12 +5254,12 @@ static int mvpp2_ethtool_get_ts_info(struct net_device *dev,
{
	struct mvpp2_port *port = netdev_priv(dev);

	ethtool_op_get_ts_info(dev, info);
	if (!port->hwtstamp)
		return -EOPNOTSUPP;
		return 0;

	info->phc_index = mvpp22_tai_ptp_clock_index(port->priv->tai);
	info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
				SOF_TIMESTAMPING_TX_HARDWARE |
	info->so_timestamping |= SOF_TIMESTAMPING_TX_HARDWARE |
				 SOF_TIMESTAMPING_RX_HARDWARE |
				 SOF_TIMESTAMPING_RAW_HARDWARE;
	info->tx_types = BIT(HWTSTAMP_TX_OFF) |