Re: [RFC][PATCH] PM: Introduce new top level suspend and hibernationcallbacks (rev. 6)

From: Alan Stern
Date: Wed Apr 02 2008 - 16:42:52 EST


On Wed, 2 Apr 2008, Oliver Neukum wrote:

> Am Mittwoch, 2. April 2008 18:42:15 schrieb Alan Stern:
> > On Wed, 2 Apr 2008, Oliver Neukum wrote:
> >
> > > Am Mittwoch, 2. April 2008 17:13:11 schrieb Alan Stern:
> > > > Basically yes.  Subsystems and drivers are allowed to keep devices
> > > > suspended if they were suspended before the system went to sleep.  
> > > > Remember, the purpose of the resume method is to let drivers know that
> > > > the system is now awake, not to force them to put their devices into a
> > > > high-power state.
> > >
> > > Well, sometimes it is exactly that what we desire, eg. as a side effect
> > > of lsusb. Should the callbacks have different semantics depending on
> > > the reason you call them? And how should that information be transferred?
> >
> > Which callbacks are you referring to? When lsusb opens a device and
> > does an autoresume, it does not call the same routine as the PM core
> > does when resuming from a system sleep. lsusb ends up calling
> > usb_autoresume_device() whereas the PM core ends up calling
> > usb_resume(), which is the function you quoted earlier.
>
> But how is usb_autoresume_device() supposed to take to the driver?
> Furthermore suppose the interface woken up is storage. This will have
> to work across subsystem borders. Why not put it into generic code?

I'm not sure exactly what you're asking. However it's worth mentioning
that once the dust from Rafael's changes settles down, I intend to
submit a patch creating new PM_EVENT_* codes:

PM_EVENT_USER_SUSPEND
PM_EVENT_USER_RESUME
PM_EVENT_REMOTE_WAKEUP
PM_EVENT_AUTOSUSPEND
PM_EVENT_AUTORESUME

(and the corresponding PMSG_* definitions). The PM core will never use
the new codes, but subsystems like USB will be able to use them
internally. Does that answer your question?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/