public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Nigel Cunningham <ncunningham@cyclades.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: Linux-pm mailing list <linux-pm@lists.osdl.org>
Subject: Re: Problems with PM_FREEZE
Date: Wed, 28 Sep 2005 09:19:58 +1000	[thread overview]
Message-ID: <1127863145.4802.40.camel@localhost> (raw)
In-Reply-To: <20050927220110.GB2381@elf.ucw.cz>

[-- Attachment #1: Type: text/plain, Size: 2076 bytes --]

Hi.

On Wed, 2005-09-28 at 08:01, Pavel Machek wrote:
> Hi!
> 
> > > > > Later on, when the system wakes up and the image is restored, drivers are 
> > > > > asked to resume the devices.  The problem is that now the drivers think 
> > > > > the devices are in FREEZE when in fact they are really in SUSPEND.  The 
> > > > > difference is significant and it can cause errors in the resume procedure.
> > > > 
> > > > No; devices are in FREEZE if their driver was in kernel, and in some kind
> > > > of power up state when not. Drivers should just handle both.
> > > 
> > > For USB, that "some kind of power up state" will in fact be SUSPEND.
> > 
> > Excuse me taking a step back, but I think you guys might be solving a
> > problem that doesn't exist...
> > 
> > How do USB drivers get into a suspend state? At suspend time, before the
> > atomic copy is made they have been told to FREEZE. At resume time, prior
> > to the atomic restore, they have been told to FREEZE. The state
> 
> They have been told to freeze _if you have usb built in_, and not
> modular. Imagine kernel with usb as a module, doing resume from kernel
> command line. usb will be in "just powered on" state.

Yes, that's true. If the usb modules are loaded when suspending and not
loaded when resuming or vice versa, you'll get inconsistencies:

State at suspend	State at resume		Image state

Built in		Built in		Freeze->Freeze
Loaded modules		Unloaded modules	Undefined->Freeze
Unloaded modules	Loaded modules		Freeze->Undefined

I guess there are three possible solutions:
1) Leave things as they are and say it is the user's problem if they
make the state inconsistent.
2) Keep knowledge of the device states across the atomic restore and use
that information in deciding what to do in device resume/powerup.
3) Make device drivers handle the situation properly without knowledge
of what state the hardware is really in (or check the real state - where
possible - and rely on that in deciding what to do).

2 seems to me to make for the most reliable solution.

Regards,

Nigel
> 								Pavel
-- 



[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2005-09-27 23:19 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-24  2:09 Problems with PM_FREEZE Alan Stern
2005-09-27 12:26 ` Pavel Machek
2005-09-27 19:02   ` Alan Stern
2005-09-27 19:58     ` Pavel Machek
2005-09-27 20:25       ` Alan Stern
2005-09-27 20:32         ` Pavel Machek
2005-09-27 21:30     ` Nigel Cunningham
2005-09-27 22:01       ` Pavel Machek
2005-09-27 23:19         ` Nigel Cunningham [this message]
2005-09-28  2:58           ` Alan Stern
2005-09-28  3:27             ` Nigel Cunningham
2005-09-28 15:46               ` David Brownell
2005-09-28 16:17               ` Alan Stern
2005-09-28 20:53                 ` Pavel Machek
2005-09-28 21:15                   ` Alan Stern
2005-09-28 21:18                     ` Pavel Machek
2005-09-28 21:20                   ` David Brownell
2005-09-28 21:22                     ` Pavel Machek
2005-09-28 13:03             ` Pavel Machek
2005-09-29 15:45               ` Alan Stern
2005-09-29 17:12                 ` David Brownell
2005-09-29 17:31                   ` Pavel Machek
2005-09-29 18:22                     ` David Brownell
2005-09-29 19:01                       ` Rafael J. Wysocki
2005-09-29 17:49                   ` Alan Stern
2005-09-28 13:04           ` Pavel Machek
2005-09-28 13:51             ` Rafael J. Wysocki
2005-09-28 18:54               ` Alan Stern
2005-09-28 19:09                 ` Rafael J. Wysocki
2005-09-28 19:31                   ` Alan Stern
2005-09-28 20:51                     ` Pavel Machek
2005-09-28 21:13                       ` Alan Stern
2005-09-28 21:19                         ` Pavel Machek
2005-09-28 21:56                     ` Rafael J. Wysocki
2005-09-28 22:01                       ` Pavel Machek
2005-09-28 22:14                         ` Rafael J. Wysocki
2005-09-28 20:51                 ` Pavel Machek
2005-09-28 21:08                   ` David Brownell
2005-09-28 21:13                     ` Pavel Machek
2005-09-28 21:12                   ` Alan Stern
2005-09-28 15:28         ` David Brownell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1127863145.4802.40.camel@localhost \
    --to=ncunningham@cyclades.com \
    --cc=linux-pm@lists.osdl.org \
    --cc=pavel@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox