[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.1407171029210.1517-100000@iolanthe.rowland.org>
Date: Thu, 17 Jul 2014 10:39:16 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: Dmitry Torokhov <dtor@...gle.com>
cc: Bastien Nocera <hadess@...ess.net>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Patrik Fimml <patrikf@...omium.org>,
<linux-pm@...r.kernel.org>, Benson Leung <bleung@...gle.com>,
<linux-input@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: Re: Power-managing devices that are not of interest at some point
in time
On Wed, 16 Jul 2014, Dmitry Torokhov wrote:
> We are not planning on implementing the policy in kernel, that's
> indeed task for userspace; but unless we bring in the heavy hammer of
> forcibly unbinding drivers, we do not currently have universal
> mechanism of quiescing devices.
We sort of do: the ->freeze() callback. But it wasn't intended for
this kind of use; drivers may very well expect that userspace will
already be frozen when the callback runs. Besides, ->freeze() is
supposed to quiesce devices without powering them down, whereas you
want to do both.
What you're asking for is different from anything the PM subsystem has
done before. Given this fact, I don't see any alternatives to adding a
new API or repurposing an existing API. Either one would be somewhat
painful.
For example, we could arrange to invoke ->suspend(). However, since
the circumstances would be unusual (userspace is still running,
->prepare() was not called beforehand, ->suspend_irq() won't be called
afterward), subsystems and drivers may very well react inappropriately.
Alan Stern
--
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