]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: dpaa2-eth: add ndo_hwtstamp_get() implementation
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 8 May 2025 13:41:02 +0000 (16:41 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 May 2025 23:41:51 +0000 (16:41 -0700)
Allow SIOCGHWTSTAMP to retrieve the current timestamping settings on
DPNIs. This reflects what has been done in dpaa2_eth_hwtstamp_set().

Tested with hwstamp_ctl -i endpmac17. Before the change, it prints
"Device driver does not have support for non-destructive SIOCGHWTSTAMP."
After the change, it retrieves the previously set configuration.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> # LX2160A
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/20250508134102.1747075-2-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c

index 13b44fc170dc2ee85b20a848d83477c9649c6978..2ec2c3dab250ad541b8b4311ec400c95d6d6b8c3 100644 (file)
@@ -2618,6 +2618,21 @@ static int dpaa2_eth_hwtstamp_set(struct net_device *dev,
        return 0;
 }
 
+static int dpaa2_eth_hwtstamp_get(struct net_device *dev,
+                                 struct kernel_hwtstamp_config *config)
+{
+       struct dpaa2_eth_priv *priv = netdev_priv(dev);
+
+       if (!dpaa2_ptp)
+               return -EINVAL;
+
+       config->tx_type = priv->tx_tstamp_type;
+       config->rx_filter = priv->rx_tstamp ? HWTSTAMP_FILTER_ALL :
+                           HWTSTAMP_FILTER_NONE;
+
+       return 0;
+}
+
 static int dpaa2_eth_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
        struct dpaa2_eth_priv *priv = netdev_priv(dev);
@@ -3029,6 +3044,7 @@ static const struct net_device_ops dpaa2_eth_ops = {
        .ndo_setup_tc = dpaa2_eth_setup_tc,
        .ndo_vlan_rx_add_vid = dpaa2_eth_rx_add_vid,
        .ndo_vlan_rx_kill_vid = dpaa2_eth_rx_kill_vid,
+       .ndo_hwtstamp_get = dpaa2_eth_hwtstamp_get,
        .ndo_hwtstamp_set = dpaa2_eth_hwtstamp_set,
 };