[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <fe8998f2-7897-735c-926f-6b6b74018784@gmail.com>
Date: Wed, 21 Jul 2021 15:39:57 +0200
From: Andre Naujoks <nautsch2@...il.com>
To: Stéphane Grosjean <s.grosjean@...k-system.com>,
Wolfgang Grandegger <wg@...ndegger.com>,
Marc Kleine-Budde <mkl@...gutronix.de>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Vincent Mailhol <mailhol.vincent@...adoo.fr>,
"Gustavo A. R. Silva" <gustavoars@...nel.org>,
Pavel Skripkin <paskripkin@...il.com>,
Colin Ian King <colin.king@...onical.com>,
"linux-can@...r.kernel.org" <linux-can@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2] Expose Peak USB device id in sysfs via phys_port_name.
Am 21.07.21 um 15:29 schrieb Stéphane Grosjean:
> Hi,
>
> The display and the possibility to change this "device_number" is a current modification of the peak_usb driver. This modification will offer this possibility for all CAN - USB interfaces of PEAK-System.
Hi.
By "current modification" you mean something not yet public? Do you have
a time frame for when you are planning to make it public? I'd really
like to use this :-)
>
> However, it is planned to create new R/W entries for this (under /sys/class/net/canX/...) as is already the case in other USB - CAN interface drivers.
I'd be fine with that. I just chose something, that was already
available and looked as if it made the most sense without breaking anything.
Thanks for the reply!
Andre
>
> — Stéphane
>
>
> De : Andre Naujoks <nautsch2@...il.com>
> Envoyé : mercredi 21 juillet 2021 14:59
> À : Wolfgang Grandegger <wg@...ndegger.com>; Marc Kleine-Budde <mkl@...gutronix.de>; David S. Miller <davem@...emloft.net>; Jakub Kicinski <kuba@...nel.org>; Stéphane Grosjean <s.grosjean@...k-system.com>; Vincent Mailhol <mailhol.vincent@...adoo.fr>; Gustavo A. R. Silva <gustavoars@...nel.org>; Pavel Skripkin <paskripkin@...il.com>; Colin Ian King <colin.king@...onical.com>; Andre Naujoks <nautsch2@...il.com>; linux-can@...r.kernel.org <linux-can@...r.kernel.org>; netdev@...r.kernel.org <netdev@...r.kernel.org>; linux-kernel@...r.kernel.org <linux-kernel@...r.kernel.org>
> Objet : [PATCH v2] Expose Peak USB device id in sysfs via phys_port_name.
>
> The Peak USB CAN adapters can be assigned a device id via the Peak
> provided tools (pcan-settings). This id can currently not be set by the
> upstream kernel drivers, but some devices expose this id already.
>
> The id can be used for consistent naming of CAN interfaces regardless of
> order of attachment or recognition on the system. The classical CAN Peak
> USB adapters expose this id via bcdDevice (combined with another value)
> on USB-level in the sysfs tree and this value is then available in
> ID_REVISION from udev. This is not a feasible approach, when a single
> USB device offers more than one CAN-interface, like e.g. the PCAN-USB
> Pro FD devices.
>
> This patch exposes those ids via the, up to now unused, netdevice sysfs
> attribute phys_port_name as a simple decimal ASCII representation of the
> id. phys_port_id was not used, since the default print functions from
> net/core/net-sysfs.c output a hex-encoded binary value, which is
> overkill for a one-byte device id, like this one.
>
> Signed-off-by: Andre Naujoks <nautsch2@...il.com>
> ---
> drivers/net/can/usb/peak_usb/pcan_usb_core.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> index e8f43ed90b72..f6cbb01a58cc 100644
> --- a/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> +++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> @@ -408,6 +408,21 @@ static netdev_tx_t peak_usb_ndo_start_xmit(struct sk_buff *skb,
> return NETDEV_TX_OK;
> }
>
> +static int peak_usb_ndo_get_phys_port_name(struct net_device *netdev,
> + char *name, size_t len)
> +{
> + const struct peak_usb_device *dev = netdev_priv(netdev);
> + int err;
> +
> + err = snprintf(name, len, "%u", dev->device_number);
> +
> + if (err >= len || err <= 0) {
> + return -EINVAL;
> + }
> +
> + return 0;
> +}
> +
> /*
> * start the CAN interface.
> * Rx and Tx urbs are allocated here. Rx urbs are submitted here.
> @@ -769,6 +784,7 @@ static const struct net_device_ops peak_usb_netdev_ops = {
> .ndo_stop = peak_usb_ndo_stop,
> .ndo_start_xmit = peak_usb_ndo_start_xmit,
> .ndo_change_mtu = can_change_mtu,
> + .ndo_get_phys_port_name = peak_usb_ndo_get_phys_port_name,
> };
>
> /*
> --
> 2.32.0
>
> --
> PEAK-System Technik GmbH
> Sitz der Gesellschaft Darmstadt - HRB 9183
> Geschaeftsfuehrung: Alexander Gach / Uwe Wilhelm
> Unsere Datenschutzerklaerung mit wichtigen Hinweisen
> zur Behandlung personenbezogener Daten finden Sie unter
> www.peak-system.com/Datenschutz.483.0.html
>
Powered by blists - more mailing lists