Re: request_firmware vs. resume (was Re: [PATCH] bnx2 - use request_firmware())

Rafael J. Wysocki
2008-07-09T21:12:31Z

On Wednesday, 9 of July 2008, Pavel Machek wrote:
> Hi!
>
> > > > The firmware needs to be reloaded every time the chip resets.
> > > > You're not saving anything/
> > >
> > > > See above, you aren't saving anything. The firmware needs to stay
> > > > around so it can be reloaded into the card during exceptions.
> > > >
> > > > That is, unless you want a more failure prone system.
> > >
> > > Ok so if tg3 always needs the same firmware and always needs it in memory
> > > then maybe it isn't a significant candidate for request_firmware beyond
> > > the neatness of distribution. I note the firmware hasn't changed in years
> > > so it can easily be shipped separately and the one package would have
> > > done for all this time.
> >
> > It isn't just tg3. All the broadcom gigabit chips need this
> > kind of handling.
> >
> > Basically all of the drivers we are pushing back on.
> >
> > I bet there are other similar examples.
>
> Be careful about request_firmware. Doing it right w.r.t.
> suspend/resume is quite tricky: you have to load it from userspace
> before kernel starts, so that you can use it during resume...

Rather, you have to cache it in memory before your ->suspend() is invoked.

Thanks,
Rafael