Re: 2.6.25-rc2 System no longer powers off after suspend-to-disk. Screen becomes green.

Jesse Barnes
2008-02-20T20:43:13Z

On Wednesday, February 20, 2008 12:29 pm Linus Torvalds wrote:
> On Wed, 20 Feb 2008, Rafael J. Wysocki wrote:
> > I think we should export the target sleep state somehow.
>
> Yeah. By *not* using "->suspend()" for freezing or hibernate.
>
> Please, Rafael - just make the f*cking suspend-to-disk use other routines
> already. 99% of all hardware needs to do exactly *nothing* on
> suspend-to-disk, and the ones that really do need things tend to need to
> not do a whole lot.

In talking with Rafael on IRC about this, I think we're agreed that we need
separate entry points. Even with a kexec based hibernate, we'll probably
want ->hibernate callbacks so we don't end up shutting down the device.

The current callback system looks like this (according to Rafael and the last
time I looked):
->suspend(PMSG_FREEZE)
->resume()
->suspend(PMSG_SUSPEND)
*enter S3 or power off*
->resume()
The fact that we get suspend/resume called once before suspend again in the
hibernate case is somewhat obnoxious, but it's even worse that we don't know
what we're about to enter after ->suspend(PMSG_SUSPEND). So in the short
term it would be nice to at least get the target state exported.

And in the long term we could have:
->suspend()
*enter S3*
->resume()
or:
->hibernate()
*kexec to another kernel to save image*
*power off*
->return_from_hibernate() (or somesuch)

Jesse