summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2010-06-11 11:23:42 -0700
committerGary King <gking@nvidia.com>2010-06-11 15:18:57 -0700
commitf13c9498cc92e896028e183cb47e81a029759baa (patch)
tree56def0c578bb282f53709cba54ed3e7255e3e794 /arch
parentecbd9a2fe95aba341747b57db673dbc688fa13d0 (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.c3
-rw-r--r--arch/arm/mach-tegra/cpuidle.c2
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);