net: dpaa2-eth: add ndo_hwtstamp_get() implementation

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>
This commit is contained in:
Vladimir Oltean 2025-05-08 16:41:02 +03:00 committed by Jakub Kicinski
parent b6e79c5da8
commit d27c6e8975

View 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,
};