Commit 243449f9 authored by Vadim Fedorenko's avatar Vadim Fedorenko Committed by Marc Kleine-Budde
Browse files

can: peak_usb: convert to use ndo_hwtstamp callbacks



Convert driver to use ndo_hwtstamp_set()/ndo_hwtstamp_get() callbacks.
ndo_eth_ioctl handler does nothing after conversion - remove it.

Signed-off-by: default avatarVadim Fedorenko <vadim.fedorenko@linux.dev>
Reviewed-by: default avatarKory Maincent <kory.maincent@bootlin.com>
Reviewed-by: default avatarVincent Mailhol <mailhol@kernel.org>
Link: https://patch.msgid.link/20251029231620.1135640-4-vadim.fedorenko@linux.dev


Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 336e2232
Loading
Loading
Loading
Loading
+18 −21
Original line number Diff line number Diff line
@@ -784,36 +784,33 @@ static int peak_usb_set_data_bittiming(struct net_device *netdev)
	return 0;
}

static int peak_eth_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
static int peak_hwtstamp_get(struct net_device *netdev,
			     struct kernel_hwtstamp_config *config)
{
	struct hwtstamp_config hwts_cfg = { 0 };

	switch (cmd) {
	case SIOCSHWTSTAMP: /* set */
		if (copy_from_user(&hwts_cfg, ifr->ifr_data, sizeof(hwts_cfg)))
			return -EFAULT;
		if (hwts_cfg.tx_type == HWTSTAMP_TX_OFF &&
		    hwts_cfg.rx_filter == HWTSTAMP_FILTER_ALL)
	config->tx_type = HWTSTAMP_TX_OFF;
	config->rx_filter = HWTSTAMP_FILTER_ALL;

	return 0;
		return -ERANGE;
}

	case SIOCGHWTSTAMP: /* get */
		hwts_cfg.tx_type = HWTSTAMP_TX_OFF;
		hwts_cfg.rx_filter = HWTSTAMP_FILTER_ALL;
		if (copy_to_user(ifr->ifr_data, &hwts_cfg, sizeof(hwts_cfg)))
			return -EFAULT;
static int peak_hwtstamp_set(struct net_device *netdev,
			     struct kernel_hwtstamp_config *config,
			     struct netlink_ext_ack *extack)
{
	if (config->tx_type == HWTSTAMP_TX_OFF &&
	    config->rx_filter == HWTSTAMP_FILTER_ALL)
		return 0;

	default:
		return -EOPNOTSUPP;
	}
	NL_SET_ERR_MSG_MOD(extack, "Only RX HWTSTAMP_FILTER_ALL is supported");
	return -ERANGE;
}

static const struct net_device_ops peak_usb_netdev_ops = {
	.ndo_open = peak_usb_ndo_open,
	.ndo_stop = peak_usb_ndo_stop,
	.ndo_eth_ioctl = peak_eth_ioctl,
	.ndo_start_xmit = peak_usb_ndo_start_xmit,
	.ndo_hwtstamp_get = peak_hwtstamp_get,
	.ndo_hwtstamp_set = peak_hwtstamp_set,
};

/* CAN-USB devices generally handle 32-bit CAN channel IDs.