diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2014-05-28 13:00:14 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-05-29 09:08:23 -0400 |
commit | 2e2d663d2dd64ffe9855be0b35aa221c9b8139f2 (patch) | |
tree | 508667aa6fbab564e7875d3953671265d0176e69 /arch/mips/mm/init.c | |
parent | 5ec79bf919ddb53fd98893b7217897c839aa19cc (diff) | |
parent | 322014531e1fac4674b8eef67e4f80aca1e9f003 (diff) |
Merge branch 'wip-mips-pm' of https://github.com/paulburton/linux into mips-for-linux-next
Diffstat (limited to 'arch/mips/mm/init.c')
-rw-r--r-- | arch/mips/mm/init.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 609a0cd749ff..6e4413330e36 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -79,7 +79,7 @@ void setup_zero_pages(void) | |||
79 | zero_page_mask = ((PAGE_SIZE << order) - 1) & PAGE_MASK; | 79 | zero_page_mask = ((PAGE_SIZE << order) - 1) & PAGE_MASK; |
80 | } | 80 | } |
81 | 81 | ||
82 | void *kmap_coherent(struct page *page, unsigned long addr) | 82 | static void *__kmap_pgprot(struct page *page, unsigned long addr, pgprot_t prot) |
83 | { | 83 | { |
84 | enum fixed_addresses idx; | 84 | enum fixed_addresses idx; |
85 | unsigned long vaddr, flags, entrylo; | 85 | unsigned long vaddr, flags, entrylo; |
@@ -93,7 +93,7 @@ void *kmap_coherent(struct page *page, unsigned long addr) | |||
93 | idx = (addr >> PAGE_SHIFT) & (FIX_N_COLOURS - 1); | 93 | idx = (addr >> PAGE_SHIFT) & (FIX_N_COLOURS - 1); |
94 | idx += in_interrupt() ? FIX_N_COLOURS : 0; | 94 | idx += in_interrupt() ? FIX_N_COLOURS : 0; |
95 | vaddr = __fix_to_virt(FIX_CMAP_END - idx); | 95 | vaddr = __fix_to_virt(FIX_CMAP_END - idx); |
96 | pte = mk_pte(page, PAGE_KERNEL); | 96 | pte = mk_pte(page, prot); |
97 | #if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) | 97 | #if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) |
98 | entrylo = pte.pte_high; | 98 | entrylo = pte.pte_high; |
99 | #else | 99 | #else |
@@ -117,6 +117,16 @@ void *kmap_coherent(struct page *page, unsigned long addr) | |||
117 | return (void*) vaddr; | 117 | return (void*) vaddr; |
118 | } | 118 | } |
119 | 119 | ||
120 | void *kmap_coherent(struct page *page, unsigned long addr) | ||
121 | { | ||
122 | return __kmap_pgprot(page, addr, PAGE_KERNEL); | ||
123 | } | ||
124 | |||
125 | void *kmap_noncoherent(struct page *page, unsigned long addr) | ||
126 | { | ||
127 | return __kmap_pgprot(page, addr, PAGE_KERNEL_NC); | ||
128 | } | ||
129 | |||
120 | void kunmap_coherent(void) | 130 | void kunmap_coherent(void) |
121 | { | 131 | { |
122 | unsigned int wired; | 132 | unsigned int wired; |