git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge ../linux-2.6-watchdog-mm
[pandora-kernel.git]
/
arch
/
arm
/
mm
/
mmu.c
diff --git
a/arch/arm/mm/mmu.c
b/arch/arm/mm/mmu.c
index
f866bf6
..
655c837
100644
(file)
--- a/
arch/arm/mm/mmu.c
+++ b/
arch/arm/mm/mmu.c
@@
-154,6
+154,26
@@
static int __init noalign_setup(char *__unused)
}
__setup("noalign", noalign_setup);
}
__setup("noalign", noalign_setup);
+#ifndef CONFIG_SMP
+void adjust_cr(unsigned long mask, unsigned long set)
+{
+ unsigned long flags;
+
+ mask &= ~CR_A;
+
+ set &= mask;
+
+ local_irq_save(flags);
+
+ cr_no_alignment = (cr_no_alignment & ~mask) | set;
+ cr_alignment = (cr_alignment & ~mask) | set;
+
+ set_cr((get_cr() & ~mask) | set);
+
+ local_irq_restore(flags);
+}
+#endif
+
struct mem_types {
unsigned int prot_pte;
unsigned int prot_l1;
struct mem_types {
unsigned int prot_pte;
unsigned int prot_l1;
@@
-265,7
+285,7
@@
static void __init build_mem_type_table(void)
if (arch_is_coherent()) {
if (cpu_is_xsc3()) {
mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
if (arch_is_coherent()) {
if (cpu_is_xsc3()) {
mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
- mem_types[MT_MEMORY].prot_pte |= L_PTE_
COHERENT
;
+ mem_types[MT_MEMORY].prot_pte |= L_PTE_
SHARED
;
}
}
}
}
@@
-294,12
+314,6
@@
static void __init build_mem_type_table(void)
mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE;
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE;
mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
- /*
- * User pages need to be mapped with the ASID
- * (iow, non-global)
- */
- user_pgprot |= L_PTE_ASID;
-
#ifdef CONFIG_SMP
/*
* Mark memory with the "shared" attribute for SMP systems
#ifdef CONFIG_SMP
/*
* Mark memory with the "shared" attribute for SMP systems
@@
-408,7
+422,7
@@
alloc_init_page(unsigned long virt, unsigned long phys, unsigned int prot_l1, pg
}
ptep = pte_offset_kernel(pmdp, virt);
}
ptep = pte_offset_kernel(pmdp, virt);
- set_pte
(ptep, pfn_pte(phys >> PAGE_SHIFT, prot)
);
+ set_pte
_ext(ptep, pfn_pte(phys >> PAGE_SHIFT, prot), 0
);
}
/*
}
/*
@@
-619,6
+633,13
@@
void __init reserve_node_zero(pg_data_t *pgdat)
if (machine_is_p720t())
res_size = 0x00014000;
if (machine_is_p720t())
res_size = 0x00014000;
+ /* H1940 and RX3715 need to reserve this for suspend */
+
+ if (machine_is_h1940() || machine_is_rx3715()) {
+ reserve_bootmem_node(pgdat, 0x30003000, 0x1000);
+ reserve_bootmem_node(pgdat, 0x30081000, 0x1000);
+ }
+
#ifdef CONFIG_SA1111
/*
* Because of the SA1111 DMA bug, we want to preserve our
#ifdef CONFIG_SA1111
/*
* Because of the SA1111 DMA bug, we want to preserve our