* hibernate vs. WoL
@ 2009-05-15 14:02 Johannes Berg
2009-05-15 15:15 ` Rafael J. Wysocki
0 siblings, 1 reply; 2+ messages in thread
From: Johannes Berg @ 2009-05-15 14:02 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: linux-kernel, Pavel Machek
[-- Attachment #1: Type: text/plain, Size: 1022 bytes --]
Hi,
According to pm.h one should enable wakup events in the suspend() and
poweroff() callbacks.
However, poweroff is not called for the 'shutdown' or 'restart'
hibernate methods. This seems problematic, since then with proper
drivers platforms that have no 'platform' suspend method then cannot WoL
or anything like that (well, for 'restart' that isn't very relevant).
The only way to hack around that seems to be to implement the
dev->driver->shutdown method, but I don't think that is intended? On the
other hand calling both ->shutdown and ->poweroff seems problematic.
Right now what I'm trying to do is preserve a wireless connection across
hibernate. This is possible by telling the AP that we're asleep, in
which case it will buffer frames for us (it may eventually kick us off
anyway, but that's ok, without telling it we're asleep I don't even
survive a 'reboot' method cycle).
Also, shouldn't it be possible to WoL while your machine is shut down?
How do you program that?
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: hibernate vs. WoL
2009-05-15 14:02 hibernate vs. WoL Johannes Berg
@ 2009-05-15 15:15 ` Rafael J. Wysocki
0 siblings, 0 replies; 2+ messages in thread
From: Rafael J. Wysocki @ 2009-05-15 15:15 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-kernel, Pavel Machek, pm list
On Friday 15 May 2009, Johannes Berg wrote:
> Hi,
Hi,
> According to pm.h one should enable wakup events in the suspend() and
> poweroff() callbacks.
>
> However, poweroff is not called for the 'shutdown' or 'restart'
> hibernate methods. This seems problematic, since then with proper
> drivers platforms that have no 'platform' suspend method then cannot WoL
> or anything like that (well, for 'restart' that isn't very relevant).
I think the solution for these platforms is to define hibernation operations
(struct platform_hibernation_ops) that do nothing and use the 'platform' mode.
WoL is not really supported in the 'shutdown' mode due to drivers that
don't have a ->shutdown() method setting up WoL. Also, on ACPI systems we
often need to do some ACPI magic for the WoL to really work and this is not
done in the 'platform' mode.
> The only way to hack around that seems to be to implement the
> dev->driver->shutdown method, but I don't think that is intended? On the
> other hand calling both ->shutdown and ->poweroff seems problematic.
>
> Right now what I'm trying to do is preserve a wireless connection across
> hibernate. This is possible by telling the AP that we're asleep, in
> which case it will buffer frames for us (it may eventually kick us off
> anyway, but that's ok, without telling it we're asleep I don't even
> survive a 'reboot' method cycle).
>
> Also, shouldn't it be possible to WoL while your machine is shut down?
> How do you program that?
Set up WoL in ->shutdown(), like e1000 for example.
In fact I don't like it too, because IMO we clearly seem to need to split
the current ->shutdown() into non-PM and PM parts, but that's how it goes
at the moment.
Thanks,
Rafael
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-05-15 15:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-15 14:02 hibernate vs. WoL Johannes Berg
2009-05-15 15:15 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®