2024-02-20 09:50:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 0/2] Add some uevent variables on DVB to support persistent names on udev

As pointed by https://github.com/systemd/systemd/issues/31406,
currently, udev doesn't have pesistent names for the subsystem.

Add adapter's name and device's parent device, as those may help
adding unique persistent names.

While here, also change em28xx-dvb to use a real name instead of
the parent dev name. With that, uevent for DVB devnodes will
resemble this:

/sys/class/dvb/dvb0.demux0/uevent:MAJOR=212
/sys/class/dvb/dvb0.demux0/uevent:MINOR=1
/sys/class/dvb/dvb0.demux0/uevent:DEVNAME=dvb/adapter0/demux0
/sys/class/dvb/dvb0.demux0/uevent:DVB_ADAPTER_NAME=PCTV nanoStick T2 290e
/sys/class/dvb/dvb0.demux0/uevent:DVB_ADAPTER_PDEV=2-1:1.0
/sys/class/dvb/dvb0.demux0/uevent:DVB_ADAPTER_NUM=0
/sys/class/dvb/dvb0.demux0/uevent:DVB_DEVICE_TYPE=demux
/sys/class/dvb/dvb0.demux0/uevent:DVB_DEVICE_NUM=0

Tested with a PCTV nanoStick T2 290e device.

Mauro Carvalho Chehab (2):
media: dvbdev: export adapter's name and bus ID to DVB uevent
variables
em28xx-dvb: fix DVB adapter device name

drivers/media/dvb-core/dvbdev.c | 2 ++
drivers/media/usb/em28xx/em28xx-dvb.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)

--
2.43.0




2024-02-20 10:12:43

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH 1/2] media: dvbdev: export adapter's name and bus ID to DVB uevent variables

Add two new variables for uevent, helping udev to be able to setup
a persistent name for the device.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/dvb-core/dvbdev.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
index 733d0bc4b4cc..01227c695cbd 100644
--- a/drivers/media/dvb-core/dvbdev.c
+++ b/drivers/media/dvb-core/dvbdev.c
@@ -1064,6 +1064,8 @@ static int dvb_uevent(const struct device *dev, struct kobj_uevent_env *env)
{
const struct dvb_device *dvbdev = dev_get_drvdata(dev);

+ add_uevent_var(env, "DVB_ADAPTER_NAME=%s", dvbdev->adapter->name);
+ add_uevent_var(env, "DVB_ADAPTER_PDEV=%s", dev_name(dev->parent));
add_uevent_var(env, "DVB_ADAPTER_NUM=%d", dvbdev->adapter->num);
add_uevent_var(env, "DVB_DEVICE_TYPE=%s", dnames[dvbdev->type]);
add_uevent_var(env, "DVB_DEVICE_NUM=%d", dvbdev->id);
--
2.43.0


2024-02-26 09:42:27

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH 1/2] media: dvbdev: export adapter's name and bus ID to DVB uevent variables

On 20/02/2024 10:46, Mauro Carvalho Chehab wrote:
> Add two new variables for uevent, helping udev to be able to setup
> a persistent name for the device.
>
> Signed-off-by: Mauro Carvalho Chehab <[email protected]>

Reviewed-by: Hans Verkuil <[email protected]>

Regards,

Hans

> ---
> drivers/media/dvb-core/dvbdev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
> index 733d0bc4b4cc..01227c695cbd 100644
> --- a/drivers/media/dvb-core/dvbdev.c
> +++ b/drivers/media/dvb-core/dvbdev.c
> @@ -1064,6 +1064,8 @@ static int dvb_uevent(const struct device *dev, struct kobj_uevent_env *env)
> {
> const struct dvb_device *dvbdev = dev_get_drvdata(dev);
>
> + add_uevent_var(env, "DVB_ADAPTER_NAME=%s", dvbdev->adapter->name);
> + add_uevent_var(env, "DVB_ADAPTER_PDEV=%s", dev_name(dev->parent));
> add_uevent_var(env, "DVB_ADAPTER_NUM=%d", dvbdev->adapter->num);
> add_uevent_var(env, "DVB_DEVICE_TYPE=%s", dnames[dvbdev->type]);
> add_uevent_var(env, "DVB_DEVICE_NUM=%d", dvbdev->id);