diff options
author | Scott Williams <scwilliams@nvidia.com> | 2010-06-11 11:23:42 -0700 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-11 15:18:57 -0700 |
commit | f13c9498cc92e896028e183cb47e81a029759baa (patch) | |
tree | 56def0c578bb282f53709cba54ed3e7255e3e794 /arch | |
parent | ecbd9a2fe95aba341747b57db673dbc688fa13d0 (diff) |
tegra: Perform DSB immediately before WFI
As per ARM recommendation, perform a DSB immediatly before a WFI.
Change-Id: I8a94ca13c73e7a1d2d96712b0e29122a0b4c1618
Reviewed-on: http://git-master/r/2501
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-nvodm.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/cpuidle.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-nvodm.c b/arch/arm/mach-tegra/board-nvodm.c index 788653d3e394..19416f7da720 100644 --- a/arch/arm/mach-tegra/board-nvodm.c +++ b/arch/arm/mach-tegra/board-nvodm.c @@ -994,7 +994,7 @@ static noinline void __init tegra_setup_spi(void) for (i=0; i<ARRAY_SIZE(tegra_spi_devices); i++) { struct platform_device *pdev = &tegra_spi_devices[i]; struct tegra_spi_platform_data *plat = &tegra_spi_platform[i]; - + const NvOdmQuerySpiDeviceInfo *info = NULL; NvU32 mux = 0; int rc; @@ -1247,6 +1247,7 @@ static void tegra_system_power_off(void) } local_irq_disable(); while (1) { + dsb(); __asm__ ("wfi"); } } diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c index e2a61708fc86..f2b98f496885 100644 --- a/arch/arm/mach-tegra/cpuidle.c +++ b/arch/arm/mach-tegra/cpuidle.c @@ -73,9 +73,9 @@ static int tegra_idle_enter_lp3(struct cpuidle_device *dev, enter = ktime_get(); if (!need_resched()) { - dsb(); __raw_writel(reg, flow_ctrl); reg = __raw_readl(flow_ctrl); + dsb(); __asm__ volatile ("wfi"); __raw_writel(0, flow_ctrl); reg = __raw_readl(flow_ctrl); |