it is however quite dangerous for a driver to do so.
why?
a better interface is a generic firmware loading API
(or as generic as one
can be made, anyway) with a userspace firmware loader.
agreed. its a rather tricky design however, because on a lot of
hardware, you have to defer most of the driver initialization until
the firmware load is complete. the h/w won't even talk to you "fully"
until you've done this. this means you have a loaded device driver
that is actually incapable of doing anything until a separate
user-space application is invoked.