Thread (91 messages) 91 messages, 15 authors, 2012-01-03

Re: loading firmware while usermodehelper disabled.

From: Jack Stone <hidden>
Date: 2012-01-02 23:32:05
Also in: lkml

On 02/01/12 23:00, Matthew Garrett wrote:
On Mon, Jan 02, 2012 at 02:46:56PM -0800, Linus Torvalds wrote:
quoted
It's *trivial* to attach the firmware driver and load the firmware
even if the firmware isn't needed - because you know it *will* be
needed if somebody suspends. Why not just do that? Why make up these
horrible problems that are totally irrelevant?
It means adding complexity to drivers that don't currently care about 
it, and carrying that cost even for hardware that doesn't need it. It 
can certainly be made to work, but it's inelegant. We could avoid this 
specific instance of the problem by just punting responsibility to 
userland instead.

It's clear that we can solve this. All I'm saying is that just making 
the firmware loader cache things isn't a solution in itself. In this 
specific case, it means merging the isight_firmware driver into 
uvcvideo, which is something the uvcvideo maintainer didn't seem keen on 
a few years ago.
Rather than merging the drivers we could make the uvcvideo (or any other
generic driver) driver expose a "subdriver" interface that allows
another module to bind to the specific ID and add extra handling to
certain events. We could then use that interface to provide a firmware
driver for each device that needs it. The firmware driver could bind to
the bootstrap device and to the uvcvideo subdriver interface and it
would then have all the lifetime info we need. [Credit to Linus for
suggesting this idea]

You mensioned earlier about not being able to tell the difference
between a device that needs firmware and one that needs flash (e.g. they
use exactly the same ids). It doesn't really matter - we just assume
that it might need firmware and load it anyway. It uses more memory but
is robust.

Also, as Linus mensioned, for some devices we just don't care. For
example, if we drop a video call over suspend it's not ideal but it
doesn't prevent the system from resuming. Lets concentrate on fixing all
the cases that could prevent resume (the "99%") and fix the other
devices later.

Thanks,

Jack
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help