Thread (15 messages) flat view 15 messages, 3 authors, 2014-02-06

[PATCH 5/5] ARM: tegra: cpuidle: use firmware call for power down

From: acourbot@nvidia.com (Alexandre Courbot)
Date: 2014-02-06 02:28:30
Also in: linux-tegra, lkml

On 02/06/2014 01:28 AM, Stephen Warren wrote:
On 01/23/2014 12:39 AM, Alexandre Courbot wrote:
quoted
On Thu, Jan 23, 2014 at 5:45 AM, Stephen Warren [off-list ref] wrote:
quoted
On 01/21/2014 03:10 AM, Alexandre Courbot wrote:
quoted
Invoke the do_idle() firmware call before suspending a CPU so that the
underlying firmware (if any) can take necessary action.
quoted
diff --git a/arch/arm/mach-tegra/cpuidle-tegra114.c b/arch/arm/mach-tegra/cpuidle-tegra114.c
quoted
@@ -45,6 +46,8 @@ static int tegra114_idle_power_down(struct cpuidle_device *dev,

       clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &dev->cpu);

+     call_firmware_op(do_idle);
+
       cpu_suspend(0, tegra30_sleep_cpu_secondary_finish);

       clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &dev->cpu);
Don't you need to have the kernel also *not* do something when entering
idle; doesn't the FW op replace some of the register writes that the
kernel would otherwise be doing?
It seems like the operation is actually to inform the firmware that we
are going to suspend the CPU. Downstream kernel also uses it that way.
But you are right in that we should expect do_idle() to actually
perform the suspend operation. Maybe a prepare_idle() operation should
be added to the firmware interface for this purpose?
That sounds like a reasonable change. Is it easy to plumb in?
I think so. Will post a v2 of this soon.

Thanks,
Alex.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help