On Thu, 2010-04-01 at 05:34 +0100, Ben Hutchings wrote: > On Wed, 2010-03-31 at 02:18 +0100, David Woodhouse wrote: > > We don't use the normal hotplug mechanism because it doesn't work. It will > > load the module some time after the device appears, but that's not good > > enough for us -- we need the driver loaded _immediately_ because otherwise > > the NIC driver may just abort and then the phy 'device' goes away. > > > > Instead, we just issue a request_module() directly in phy_device_create(). > [...] > > Thanks for doing this, David. I had a stab at it earlier when this > problem was reported in Debian <http://bugs.debian.org/553024>. I > didn't complete this because (a) I didn't understand all the details of > adding new device table type, and (b) I tried to avoid duplicating > information, which turns out to be rather difficult in modules with > multiple drivers.
It shouldn't be _that_ hard. You could contrive a macro which you use inside the driver definition and which takes the phy_id and phy_id_mask as arguments, and has the side-effect of setting up the MODULE_DEVICE_TABLE data. > Since you've dealt with (a), and (b) is not really as important, I would > just like to suggest some minor changes to your patch 1 (see below). > Feel free to fold them in. Your patch 2 would then need the > substitutions s/phy_device_id/mdio_device_id/; s/TABLE(phy/TABLE(mdio/. I'll tolerate the silly __u32 crap if I must for consistency, but normally I prefer to write in C. I did think about 'mdio:' for the module alias, but I decided that 'phy:' probably made more sense since these are PHY driver modules and the number is the phy_id. Kernel-doc is good though. -- David Woodhouse Open Source Technology Centre david.woodho...@intel.com Intel Corporation -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org