Re: [RFC] New Driver Model for 2.5

Patrick Mochel
2001-10-23T00:29:06Z

On Tue, 23 Oct 2001, Alan Cox wrote:

> > /* Now tell them to stop I/O and save their state */
> > device_suspend(3, SUSPEND_SAVE_STATE);
>
> I'd very much like this one to be two pass, with the second pass occuring
> after interrupts are disabled. There are some horrible cases to try and
> handle otherwise (like devices that like to jam the irq line high).

I forgot to mention to disable interrupts after the SUSPEND_NOTIFY call.
The idea is to allocate all memory in the first pass, disable interrupts,
then save state. Would that work? Or, should some of the state saving take
place with interrupts enabled?

> Ditto on return from suspend where some devices also like to float the irq
> high as you take them over (eg USB on my Palmax). From comments Ben made
> ages back I believe ppc has similar issues if not worse

Yes, the resume sequence is broken into two stages:

device_resume(RESUME_POWER_ON);

/* enable interrupts */

device_resume(RESUME_RESTORE_STATE);

Do you see a need to break it up further?

-pat