> > I personally think that loading firmware in the probe routine is okay
> > and I fully agree with you that the less complexity in the driver the
> > better. Loading the firmware will almost always have to block since the
> > device can't be used before the firmware loading has been finished.
> 
> If you take that thought to its logical conclusion you make firmware
> an attribute of the driver and let usbcore request it.

That's what the usbatm subsystem does.  USB ATM modems register themselves
with usbatm.  They can provide a "heavy_init" method (mostly used for loading
firmware).  If it is provided, then usbatm runs heavy_init in another thread
after probing the modem driver.  usbatm also takes care of making sure the
thread has stopped running when the modem is disconnected.  That way the
individual modem drivers can easily load firmware etc as if in the probe
method without having to worry about solving for themselves all the problems
(mainly race conditions) involved in loading firmware from another thread.
usbcore could provide something like this.

Ciao,

Duncan.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to