Michael Hunold wrote: > On 06/22/04 10:27, Peter Maersk-Moller wrote: > >Seriously, using "extended minor number". How do I do that ? > >Are you talking about changing something in a config file > >or are you talking about rewriting the device driver ? > > This must be changed in the dvb-core device handling.
dev_t has now 32 bit (12 bit for the major and 20 bit for the minor number). See http://lwn.net/Articles/49684/ BTW, I now remember that the CONFIG_DVB_DEVFS_ONLY stuff was dropped because of changes in devfs. It just wouldn't work that way anymore in 2.6. > >What is the limitation regarding more DVB devices than 4 ? > > There can be 9 different types of devices per adapter > (video,audio,sec,frontend,demux,dvr,ca, net) and each device can be > present up to 4 times (ie. demux0, demux1, demux2, demux3) > > Because everything needs to be a power of two, one adapter consumes > 16*4=64 minor numbers. Because of the fact you only have 256 minor > numbers you're stuck with 4 adapters. > > For 2.4 alone, the devfs implementation wasn't tied to major/minor > numbers, so if you used devfs alone it was possible to support more that > 4 adapters. The "power of two" thing is not a requirement, it's usually just convenient because you can simply mask the adapter number or device type from the minor number. However, if you look at dvbdev.c, dvbdev_find_device() does not make use of this encoding. Wierd... In theory: It would be possible to use 3 bits for the adapter number and make a table which maps the remaining 5 bits to device type and number, and adapt MAKEDEV-DVB.sh to the new numbering scheme. However, as this would create some headaches for many users during driver upgrade, I don't want to do this. Either use the new dev_t bits or use a second major number. > In 2.6 this has changed -- devfs is now more tightly coupled and is > limited to major/minor numbers again. > > But: major/minor numbers have been extended from 8 to 16 bit types, so It's 12/20 bit, see kdev_t.h. > it should be possible to support more devices, but this also affects the > surrounding system (ie. glibc must support this) Specifically mknod must allow you to create device nodes with major or minor > 255. Johannes
