Am Samstag, 17. Mai 2003 06:50 schrieb David Gibson:> On Sat, May 17, 2003 at 12:13:49AM +0200, Oliver Neukum wrote:> > Am Freitag, 16. Mai 2003 18:09 schrieb Alan Cox:> > > On Gwe, 2003-05-16 at 09:07, Oliver Neukum wrote:> > > > So, if I understand you correctly, RAM is only saved if a device> > > > is hotpluggable and needs firmware only upon intial connection.> > > > Which, if you do suspend to disk correctly, is no device.> > >> > > Thats just because the interface is a little warped not the theory.> > > On a resume you need to reload firmware and you already handle> > > rediscovery on USB bus for example because the devices can change> >> > Right. But the order of resumption is fixed by hardware needs.> > So during resumption you cannot use block devices and therefore> > not start a hotplug script. Or did I miss something?>> For devices that aren't essentialy to get userspace running> (e.g. network on a laptop running from local disk), the firmware> request doesn't have to happen during the hairy part of resumption.

Not true for network cards. Somebody might be running NFSover it. The problem is that you cannot tell (or rather shouldn't - it'sa layering violation).

Anything that is used for paging needs to be back to life beforeyou can think about resurrecting user space.Also you need to bring keyboards back to life early to makesysreq work.

Secondly, you need a way to get essential devices to work inall cases. If you implement it, why not use it?

> The device could just mark itself as unusable at suspend time, then at> resume it schedule_work()s something to reload the firmware and> complete reinitialization. Shortly after userspace is back in action,> the device will come back to life.

Is supposed to. You cannot put blind trust into that. You need to usea pretty arbitrary timeout to deal with this.