Re: PCI PM: Restore standard config registers of all devices early

Rafael J. Wysocki
2009-02-03T21:58:21Z

On Tuesday 03 February 2009, Linus Torvalds wrote:
>
> On Tue, 3 Feb 2009, Rafael J. Wysocki wrote:
> >
> > As I said, I tend to prefer the "loop of disable_irq()" approach, because it
> > would allow us to preserve the current ordering of ACPI operations. Namely,
> > if we do:
> >
> > suspend devices (normal suspend)
> > loop of disable_irq()
> > late suspend of devices
> > _PTS
> > disable nonboot CPUs
> > local_irq_disable()
> > sysdev suspend
> > enter sleep state
> > get control from the BIOS
> > sysdev resume
> > (*)
> > local_irq_enable()
> > enable nonboot CPUs
> > _WAK
> > early resume of devices
> > loop of enable_irq()
> > resume devices (normal resume)
> >
> > the ordering of _PTS with respect to putting devices into low power states and
> > disabling the nonboot CPUs will be the same as it is now and the same applies
> > to _WAK and putting devices into D0 etc. (I really _really_ wouldn't like to
> > change this ordering, since this alone is likely to break things badly).
>
> Yes.
>
> Also, make the "loop of disable/enable_irq()" phase be a helper function
> that also sets system_state to SYSTEM_SUSPENDING/SYSTEM_RUNNING
> respectively, and it should all be pretty clean, and the changes really
> should be pretty minimal.

OK

So, I'm going to implement something along these lines. We'll see how it
works out.

Thanks,
Rafael