[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <200905151715.54123.rjw@sisk.pl>
Date: Fri, 15 May 2009 17:15:53 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: Johannes Berg <johannes@...solutions.net>
Cc: "linux-kernel" <linux-kernel@...r.kernel.org>,
Pavel Machek <pavel@....cz>,
pm list <linux-pm@...ts.linux-foundation.org>
Subject: Re: hibernate vs. WoL
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists