On Mon, Nov 09, 2009 at 05:09:27PM +0100, Wolfgang Grandegger wrote: > Kurt Van Dijck wrote: > > On Fri, Nov 06, 2009 at 11:04:27AM +0100, Kurt Van Dijck wrote: > >> Thanks to this idea, I added 1 feature to the current softing driver: > >> the channel number. > >> after this, I think any matching is possible on such devices using udev. > > > > I did some experiments with my udev alternative. seems that the > > /sys/class/net/can0/channel file is not present then the daemon wants > > it. > > I still disagree to put files for hardware (non-networking) related > properties into > /sys/class/net/canX/. What about creating > /sys/class/net/device/channelX, or /sys/class/net/device/can0/channnel.
in fact, /sys/class/net/canX is a symlink to /sys/devices/<somewhere>/<device>/net/canX on my current system, with softing card, this gives: . |-- driver -> ../../../../../bus/pcmcia/drivers/softing_cs |-- id (new directory, was 'softing') |-- net | |-- can0 | | |-- device -> ../../../0.0 | | |-- statistics | | `-- subsystem -> ../../../../../../../class/net | `-- can1 | |-- device -> ../../../0.0 | |-- statistics | `-- subsystem -> ../../../../../../../class/net `-- subsystem -> ../../../../../bus/pcmcia 1) creating /sys/devices/<somewhere>/<device>/channelX feels like re-doing the class device work (net/canX). 2) to solve the 'multiple bus on a single card' issue, even creating /sys/class/net/canX/device/channelX does not solve the problem. udev scripts would only know to start from /sys/class/net/canX. Once you follow the device/ symlink, you loose the channel information. At least, you need the channel number, or another symlink in the /sys/class/net/canX directory. 3) my current can devices have properties like address, addr_len, features, which are very hardware related though. I would prefer dividing properties into device specific & network specific. Having said this, would consulting netdev mailing list be an option for this? > We may need to introduce a dedicated bus, though. I prefer not creating a bus which isn't one. what you can do easier is to create a device whitout bus. It would give (in sysfs) (given already 3 can devices in the system to indicate the different numbering): . |-- driver -> ../../../../../bus/pcmcia/drivers/softing_cs |-- channel0 | |-- device -> ../../0.0 | `-- net | `-- can3 | |-- device -> ../../../channel0 | |-- statistics | `-- subsystem -> ../../../../../../../class/net |-- channel1 | |-- device -> ../../0.0 | `-- net | `-- can4 | |-- device -> ../../../channel1 | |-- statistics | `-- subsystem -> ../../../../../../../class/net `-- subsystem -> ../../../../../bus/pcmcia Such a structure would, I think, satisfy anyone's considerations, but it requires serious per driver support, or extensive candev.ko rework. > > Wolfgang. > Kurt _______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
