summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorJin Qian <jqian@nvidia.com>2011-08-11 15:57:43 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:47:04 -0800
commit92e11d771847c514a7ad2ad12fcdc586c336aee5 (patch)
treebc1b56c736d9526a44b99823442de57167ac72c1 /arch/arm
parent8b37e4099210cabc040a5a43f41f641104bd4b32 (diff)
ARM: tegra: power: use buffered memory for suspend context
use buffered memory to bypass L2 add memory barrier after cpu suspend Bug 862494 Change-Id: I0592ebd6608d2581700b9ae965de3e7d8aa2cabe Reviewed-on: http://git-master/r/47172 Tested-by: Jin Qian <jqian@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Tested-by: Scott Williams <scwilliams@nvidia.com> Rebase-Id: Rfee82dddd83449e730ccfcd5f6359bbaa00582a7
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-tegra/pm.c4
-rw-r--r--arch/arm/mach-tegra/sleep.S1
2 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c
index 77e9d6ffeba8..fedca9a78475 100644
--- a/arch/arm/mach-tegra/pm.c
+++ b/arch/arm/mach-tegra/pm.c
@@ -256,7 +256,7 @@ static __init int alloc_suspend_context(void)
{
#if USE_TEGRA_CPU_SUSPEND
pgprot_t prot = __pgprot_modify(pgprot_kernel, L_PTE_MT_MASK,
- L_PTE_MT_UNCACHED | L_PTE_XN);
+ L_PTE_MT_BUFFERABLE | L_PTE_XN);
struct page *ctx_page;
unsigned long ctx_virt;
phys_addr_t ctx_phys;
@@ -276,7 +276,7 @@ static __init int alloc_suspend_context(void)
pmd = pmd_offset(tegra_pgd + pgd_index(ctx_virt), ctx_virt);
*pmd = __pmd((ctx_phys & PGDIR_MASK) |
PMD_TYPE_SECT | PMD_SECT_AP_WRITE |
- PMD_SECT_XN | PMD_SECT_UNCACHED);
+ PMD_SECT_XN | PMD_SECT_BUFFERED);
flush_pmd_entry(pmd);
outer_clean_range(__pa(pmd), __pa(pmd + 1));
diff --git a/arch/arm/mach-tegra/sleep.S b/arch/arm/mach-tegra/sleep.S
index 5d8a804665a2..f2471045a288 100644
--- a/arch/arm/mach-tegra/sleep.S
+++ b/arch/arm/mach-tegra/sleep.S
@@ -229,6 +229,7 @@ ENTRY(tegra_cpu_suspend)
stmfd sp!, {r1, r2, r3} @ save v:p, virt SP, return fn
bl cpu_do_suspend
#endif
+ dsb
/* Disable the data cache */
mrc p15, 0, r10, c1, c0, 0