Re: [PATCH] dvb: Allow MAC addresses to be mapped to stable device names with udev

From: Sean Young
Date: Wed Oct 31 2018 - 06:49:18 EST


On Wed, Oct 31, 2018 at 10:36:22AM +0000, David Howells wrote:
> Sean Young <sean@xxxxxxxx> wrote:
>
> > > > Devices have a MAC address available, which is printed during boot:
> >
> > Not all dvb devices have a mac address.
>
> How do I tell? If it's all zeros it's not there?

The mac gets populated through read_mac_address member of
dvb_usb_device_properties. If that's not called (or does not succeed), then
there is no mac address. I think you can safely assume that if it's all 0's
then it was not read.

> > Devices without a mac address shouldn't have a mac_dvb sysfs attribute,
> > I think.
>
> I'm not sure that's possible within the core infrastructure. It's a class
> attribute set when the class is created; I'm not sure it can be overridden on
> a per-device basis.
>
> Possibly the file could return "" or "none" in this case?

That's very ugly. Have a look at, for example, rc-core wakeup filters:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/rc/rc-main.c#n1844

> > The dvb type and dvb adapter no is already present in the device name,
> > I'm not sure why this needs duplicating.
>
> They can be used with ATTR{} in udev rules. I'm not clear that the name can.

See my other email.

KERNEL=="dvb[0-9]+\.demux\.[0-9]+"

> > With this patch, with a usb Hauppauge Nova-T Stick I get:
> > ...
> > ==> /sys/class/dvb/dvb0.demux0/dvb_mac <==
> > 00:00:00:00:00:00
>
> I can't say why that happens. I don't have access to this hardware. Should
> it have a MAC address there? Is the MAC address getting stored in
> dvbdev->adapter->proposed_mac? Maybe it's not getting read - on the card I
> use it's read by the cx23885 driver... I think... The nova-t-usb2.c file
> doesn't mention proposed_mac.

This is a dib0700-type device (much older).


Sean