On Fri, Dec 18, 2009 at 2:47 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > This converts ar9170 to load firmware asynchronously > out of ->probe() and only register with mac80211 when > all firmware has been loaded successfully. If, on the > other hand, any firmware fails to load, it will now > unbind from the device. > > Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > --- > This can go in now, the prereq patch went in via gregkh. > > This ought to make it possible to build the driver > into the kernel and as long as your system boots > within 60 seconds it'll all just work. > > This is how we need to load firmware for drivers that > require the firmware image to detect which features > to register to mac80211/cfg80211, but it's also useful > when no features depend on the firmware. > > I've done ar9170 because I'm somewhat familiar with its > implementation. b43 should probably be converted to this > scheme since it actually has features that depend on the > firmware, and libertas_tf has the MAC addresss depending > on the firmware (well it needs the firmware to read it). > > The only complication with this is that now the user is > mostly unaware they have a wireless device, they can only > find it via lsusb/lspci etc. if firmware loading fails, > or from kernel messages. And also manual binding in sysfs, > device re-plugging or module re-loading is required to > get the module to find the device after putting firmware > in place... > > Still I think this is better than what we have now with > many drivers -- if firmware is missing you get network > interfaces etc. but cannot ever use them, and it's not > always entirely clear that is due to missing firmware. Sweet -- we could also expose firmware load events if not done so already and let userspace propagate such nasty warnings, I think we'd need to pass the firmware expected and the driver the requested it so that once the firmware is in place (I guess through inotify maybe) the driver modprobe can be retried. Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html