Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
73829af7
Commit
73829af7
authored
Dec 05, 2011
by
Russell King
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'vmalloc' of
git://git.linaro.org/people/nico/linux
into devel-stable
parents
742eaa6a
0af362f8
Changes
96
Show whitespace changes
Inline
Side-by-side
Showing
96 changed files
with
179 additions
and
1406 deletions
+179
-1406
Documentation/arm/memory.txt
Documentation/arm/memory.txt
+5
-6
arch/arm/include/asm/pgtable.h
arch/arm/include/asm/pgtable.h
+7
-6
arch/arm/kernel/setup.c
arch/arm/kernel/setup.c
+8
-0
arch/arm/mach-at91/include/mach/io.h
arch/arm/mach-at91/include/mach/io.h
+0
-8
arch/arm/mach-at91/include/mach/vmalloc.h
arch/arm/mach-at91/include/mach/vmalloc.h
+0
-28
arch/arm/mach-at91/setup.c
arch/arm/mach-at91/setup.c
+0
-18
arch/arm/mach-bcmring/dma.c
arch/arm/mach-bcmring/dma.c
+1
-1
arch/arm/mach-bcmring/include/mach/vmalloc.h
arch/arm/mach-bcmring/include/mach/vmalloc.h
+0
-25
arch/arm/mach-clps711x/include/mach/vmalloc.h
arch/arm/mach-clps711x/include/mach/vmalloc.h
+0
-20
arch/arm/mach-cns3xxx/include/mach/vmalloc.h
arch/arm/mach-cns3xxx/include/mach/vmalloc.h
+0
-11
arch/arm/mach-davinci/Makefile
arch/arm/mach-davinci/Makefile
+1
-1
arch/arm/mach-davinci/include/mach/io.h
arch/arm/mach-davinci/include/mach/io.h
+0
-8
arch/arm/mach-davinci/include/mach/vmalloc.h
arch/arm/mach-davinci/include/mach/vmalloc.h
+0
-14
arch/arm/mach-davinci/io.c
arch/arm/mach-davinci/io.c
+0
-48
arch/arm/mach-dove/include/mach/dove.h
arch/arm/mach-dove/include/mach/dove.h
+0
-2
arch/arm/mach-dove/include/mach/vmalloc.h
arch/arm/mach-dove/include/mach/vmalloc.h
+0
-5
arch/arm/mach-ebsa110/include/mach/vmalloc.h
arch/arm/mach-ebsa110/include/mach/vmalloc.h
+0
-10
arch/arm/mach-ep93xx/include/mach/vmalloc.h
arch/arm/mach-ep93xx/include/mach/vmalloc.h
+0
-5
arch/arm/mach-exynos/include/mach/vmalloc.h
arch/arm/mach-exynos/include/mach/vmalloc.h
+0
-22
arch/arm/mach-footbridge/include/mach/vmalloc.h
arch/arm/mach-footbridge/include/mach/vmalloc.h
+0
-10
arch/arm/mach-gemini/include/mach/vmalloc.h
arch/arm/mach-gemini/include/mach/vmalloc.h
+0
-10
arch/arm/mach-h720x/include/mach/vmalloc.h
arch/arm/mach-h720x/include/mach/vmalloc.h
+0
-10
arch/arm/mach-highbank/include/mach/vmalloc.h
arch/arm/mach-highbank/include/mach/vmalloc.h
+0
-1
arch/arm/mach-integrator/include/mach/vmalloc.h
arch/arm/mach-integrator/include/mach/vmalloc.h
+0
-20
arch/arm/mach-iop13xx/include/mach/vmalloc.h
arch/arm/mach-iop13xx/include/mach/vmalloc.h
+0
-4
arch/arm/mach-iop32x/include/mach/io.h
arch/arm/mach-iop32x/include/mach/io.h
+0
-7
arch/arm/mach-iop32x/include/mach/vmalloc.h
arch/arm/mach-iop32x/include/mach/vmalloc.h
+0
-5
arch/arm/mach-iop33x/include/mach/io.h
arch/arm/mach-iop33x/include/mach/io.h
+0
-7
arch/arm/mach-iop33x/include/mach/vmalloc.h
arch/arm/mach-iop33x/include/mach/vmalloc.h
+0
-5
arch/arm/mach-ixp2000/include/mach/vmalloc.h
arch/arm/mach-ixp2000/include/mach/vmalloc.h
+0
-20
arch/arm/mach-ixp23xx/include/mach/io.h
arch/arm/mach-ixp23xx/include/mach/io.h
+0
-29
arch/arm/mach-ixp23xx/include/mach/vmalloc.h
arch/arm/mach-ixp23xx/include/mach/vmalloc.h
+0
-10
arch/arm/mach-ixp4xx/include/mach/vmalloc.h
arch/arm/mach-ixp4xx/include/mach/vmalloc.h
+0
-5
arch/arm/mach-kirkwood/include/mach/io.h
arch/arm/mach-kirkwood/include/mach/io.h
+0
-25
arch/arm/mach-kirkwood/include/mach/vmalloc.h
arch/arm/mach-kirkwood/include/mach/vmalloc.h
+0
-5
arch/arm/mach-ks8695/include/mach/vmalloc.h
arch/arm/mach-ks8695/include/mach/vmalloc.h
+0
-19
arch/arm/mach-lpc32xx/include/mach/vmalloc.h
arch/arm/mach-lpc32xx/include/mach/vmalloc.h
+0
-24
arch/arm/mach-mmp/include/mach/vmalloc.h
arch/arm/mach-mmp/include/mach/vmalloc.h
+0
-5
arch/arm/mach-msm/include/mach/vmalloc.h
arch/arm/mach-msm/include/mach/vmalloc.h
+0
-22
arch/arm/mach-mv78xx0/include/mach/vmalloc.h
arch/arm/mach-mv78xx0/include/mach/vmalloc.h
+0
-5
arch/arm/mach-mxs/include/mach/vmalloc.h
arch/arm/mach-mxs/include/mach/vmalloc.h
+0
-22
arch/arm/mach-netx/include/mach/vmalloc.h
arch/arm/mach-netx/include/mach/vmalloc.h
+0
-19
arch/arm/mach-nomadik/include/mach/vmalloc.h
arch/arm/mach-nomadik/include/mach/vmalloc.h
+0
-2
arch/arm/mach-omap1/include/mach/vmalloc.h
arch/arm/mach-omap1/include/mach/vmalloc.h
+0
-20
arch/arm/mach-omap1/io.c
arch/arm/mach-omap1/io.c
+0
-1
arch/arm/mach-omap2/include/mach/vmalloc.h
arch/arm/mach-omap2/include/mach/vmalloc.h
+0
-20
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/io.c
+0
-1
arch/arm/mach-orion5x/include/mach/io.h
arch/arm/mach-orion5x/include/mach/io.h
+0
-25
arch/arm/mach-orion5x/include/mach/vmalloc.h
arch/arm/mach-orion5x/include/mach/vmalloc.h
+0
-5
arch/arm/mach-picoxcell/include/mach/vmalloc.h
arch/arm/mach-picoxcell/include/mach/vmalloc.h
+0
-14
arch/arm/mach-pnx4008/include/mach/vmalloc.h
arch/arm/mach-pnx4008/include/mach/vmalloc.h
+0
-20
arch/arm/mach-prima2/include/mach/map.h
arch/arm/mach-prima2/include/mach/map.h
+4
-2
arch/arm/mach-prima2/include/mach/vmalloc.h
arch/arm/mach-prima2/include/mach/vmalloc.h
+0
-16
arch/arm/mach-pxa/include/mach/vmalloc.h
arch/arm/mach-pxa/include/mach/vmalloc.h
+0
-11
arch/arm/mach-realview/include/mach/vmalloc.h
arch/arm/mach-realview/include/mach/vmalloc.h
+0
-21
arch/arm/mach-realview/realview_eb.c
arch/arm/mach-realview/realview_eb.c
+2
-2
arch/arm/mach-realview/realview_pbx.c
arch/arm/mach-realview/realview_pbx.c
+2
-2
arch/arm/mach-rpc/include/mach/vmalloc.h
arch/arm/mach-rpc/include/mach/vmalloc.h
+0
-10
arch/arm/mach-s3c2410/include/mach/vmalloc.h
arch/arm/mach-s3c2410/include/mach/vmalloc.h
+0
-20
arch/arm/mach-s3c64xx/include/mach/vmalloc.h
arch/arm/mach-s3c64xx/include/mach/vmalloc.h
+0
-20
arch/arm/mach-s5p64x0/include/mach/vmalloc.h
arch/arm/mach-s5p64x0/include/mach/vmalloc.h
+0
-20
arch/arm/mach-s5pc100/include/mach/vmalloc.h
arch/arm/mach-s5pc100/include/mach/vmalloc.h
+0
-17
arch/arm/mach-s5pv210/include/mach/vmalloc.h
arch/arm/mach-s5pv210/include/mach/vmalloc.h
+0
-22
arch/arm/mach-sa1100/include/mach/vmalloc.h
arch/arm/mach-sa1100/include/mach/vmalloc.h
+0
-4
arch/arm/mach-shark/include/mach/vmalloc.h
arch/arm/mach-shark/include/mach/vmalloc.h
+0
-4
arch/arm/mach-shmobile/include/mach/vmalloc.h
arch/arm/mach-shmobile/include/mach/vmalloc.h
+0
-7
arch/arm/mach-spear3xx/include/mach/vmalloc.h
arch/arm/mach-spear3xx/include/mach/vmalloc.h
+0
-19
arch/arm/mach-spear6xx/include/mach/vmalloc.h
arch/arm/mach-spear6xx/include/mach/vmalloc.h
+0
-19
arch/arm/mach-tegra/include/mach/io.h
arch/arm/mach-tegra/include/mach/io.h
+0
-6
arch/arm/mach-tegra/include/mach/vmalloc.h
arch/arm/mach-tegra/include/mach/vmalloc.h
+0
-28
arch/arm/mach-tegra/io.c
arch/arm/mach-tegra/io.c
+0
-21
arch/arm/mach-u300/include/mach/vmalloc.h
arch/arm/mach-u300/include/mach/vmalloc.h
+0
-12
arch/arm/mach-ux500/include/mach/vmalloc.h
arch/arm/mach-ux500/include/mach/vmalloc.h
+0
-18
arch/arm/mach-versatile/core.c
arch/arm/mach-versatile/core.c
+0
-5
arch/arm/mach-versatile/include/mach/vmalloc.h
arch/arm/mach-versatile/include/mach/vmalloc.h
+0
-21
arch/arm/mach-vexpress/include/mach/vmalloc.h
arch/arm/mach-vexpress/include/mach/vmalloc.h
+0
-21
arch/arm/mach-vt8500/include/mach/vmalloc.h
arch/arm/mach-vt8500/include/mach/vmalloc.h
+0
-20
arch/arm/mach-w90x900/include/mach/vmalloc.h
arch/arm/mach-w90x900/include/mach/vmalloc.h
+0
-23
arch/arm/mach-zynq/include/mach/vmalloc.h
arch/arm/mach-zynq/include/mach/vmalloc.h
+0
-20
arch/arm/mm/init.c
arch/arm/mm/init.c
+8
-32
arch/arm/mm/ioremap.c
arch/arm/mm/ioremap.c
+52
-30
arch/arm/mm/mm.h
arch/arm/mm/mm.h
+14
-0
arch/arm/mm/mmu.c
arch/arm/mm/mmu.c
+37
-14
arch/arm/mm/nommu.c
arch/arm/mm/nommu.c
+2
-0
arch/arm/plat-iop/Makefile
arch/arm/plat-iop/Makefile
+0
-2
arch/arm/plat-iop/io.c
arch/arm/plat-iop/io.c
+0
-59
arch/arm/plat-mxc/include/mach/mx1.h
arch/arm/plat-mxc/include/mach/mx1.h
+0
-2
arch/arm/plat-mxc/include/mach/vmalloc.h
arch/arm/plat-mxc/include/mach/vmalloc.h
+0
-22
arch/arm/plat-omap/Makefile
arch/arm/plat-omap/Makefile
+1
-1
arch/arm/plat-omap/common.c
arch/arm/plat-omap/common.c
+7
-0
arch/arm/plat-omap/include/plat/io.h
arch/arm/plat-omap/include/plat/io.h
+0
-8
arch/arm/plat-omap/io.c
arch/arm/plat-omap/io.c
+0
-159
arch/arm/plat-spear/include/plat/vmalloc.h
arch/arm/plat-spear/include/plat/vmalloc.h
+0
-19
arch/arm/plat-tcc/include/mach/vmalloc.h
arch/arm/plat-tcc/include/mach/vmalloc.h
+0
-10
include/linux/vmalloc.h
include/linux/vmalloc.h
+1
-0
mm/vmalloc.c
mm/vmalloc.c
+27
-2
No files found.
Documentation/arm/memory.txt
View file @
73829af7
...
...
@@ -51,15 +51,14 @@ ffc00000 ffefffff DMA memory mapping region. Memory returned
ff000000 ffbfffff Reserved for future expansion of DMA
mapping region.
VMALLOC_END feffffff Free for platform use, recommended.
VMALLOC_END must be aligned to a 2MB
boundary.
VMALLOC_START VMALLOC_END-1 vmalloc() / ioremap() space.
Memory returned by vmalloc/ioremap will
be dynamically placed in this region.
VMALLOC_START may be based upon the value
of the high_memory variable.
Machine specific static mappings are also
located here through iotable_init().
VMALLOC_START is based upon the value
of the high_memory variable, and VMALLOC_END
is equal to 0xff000000.
PAGE_OFFSET high_memory-1 Kernel direct-mapped RAM region.
This maps the platforms RAM, and typically
...
...
arch/arm/include/asm/pgtable.h
View file @
73829af7
...
...
@@ -21,7 +21,6 @@
#else
#include <asm/memory.h>
#include <mach/vmalloc.h>
#include <asm/pgtable-hwdef.h>
#include <asm/pgtable-2level.h>
...
...
@@ -33,14 +32,16 @@
* any out-of-bounds memory accesses will hopefully be caught.
* The vmalloc() routines leaves a hole of 4kB between each vmalloced
* area for the same reason. ;)
*
* Note that platforms may override VMALLOC_START, but they must provide
* VMALLOC_END. VMALLOC_END defines the (exclusive) limit of this space,
* which may not overlap IO space.
*/
#ifndef VMALLOC_START
#define VMALLOC_OFFSET (8*1024*1024)
#define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
#define VMALLOC_END 0xff000000UL
/* This is a temporary hack until shmobile's DMA area size is sorted out */
#ifdef CONFIG_ARCH_SHMOBILE
#warning "SH-Mobile's consistent DMA size conflicts with VMALLOC_END by 144MB"
#undef VMALLOC_END
#define VMALLOC_END 0xF6000000UL
#endif
#define LIBRARY_TEXT_START 0x0c000000
...
...
arch/arm/kernel/setup.c
View file @
73829af7
...
...
@@ -31,6 +31,7 @@
#include <linux/memblock.h>
#include <linux/bug.h>
#include <linux/compiler.h>
#include <linux/sort.h>
#include <asm/unified.h>
#include <asm/cpu.h>
...
...
@@ -890,6 +891,12 @@ static struct machine_desc * __init setup_machine_tags(unsigned int nr)
return
mdesc
;
}
static
int
__init
meminfo_cmp
(
const
void
*
_a
,
const
void
*
_b
)
{
const
struct
membank
*
a
=
_a
,
*
b
=
_b
;
long
cmp
=
bank_pfn_start
(
a
)
-
bank_pfn_start
(
b
);
return
cmp
<
0
?
-
1
:
cmp
>
0
?
1
:
0
;
}
void
__init
setup_arch
(
char
**
cmdline_p
)
{
...
...
@@ -918,6 +925,7 @@ void __init setup_arch(char **cmdline_p)
parse_early_param
();
sort
(
&
meminfo
.
bank
,
meminfo
.
nr_banks
,
sizeof
(
meminfo
.
bank
[
0
]),
meminfo_cmp
,
NULL
);
sanity_check_meminfo
();
arm_memblock_init
(
&
meminfo
,
mdesc
);
...
...
arch/arm/mach-at91/include/mach/io.h
View file @
73829af7
...
...
@@ -30,14 +30,6 @@
#ifndef __ASSEMBLY__
#ifndef CONFIG_ARCH_AT91X40
#define __arch_ioremap at91_ioremap
#define __arch_iounmap at91_iounmap
#endif
void
__iomem
*
at91_ioremap
(
unsigned
long
phys
,
size_t
size
,
unsigned
int
type
);
void
at91_iounmap
(
volatile
void
__iomem
*
addr
);
static
inline
unsigned
int
at91_sys_read
(
unsigned
int
reg_offset
)
{
void
__iomem
*
addr
=
(
void
__iomem
*
)
AT91_VA_BASE_SYS
;
...
...
arch/arm/mach-at91/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-at91/include/mach/vmalloc.h
*
* Copyright (C) 2003 SAN People
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#include <mach/hardware.h>
#define VMALLOC_END (AT91_VIRT_BASE & PGDIR_MASK)
#endif
arch/arm/mach-at91/setup.c
View file @
73829af7
...
...
@@ -73,24 +73,6 @@ static struct map_desc at91_io_desc __initdata = {
.
type
=
MT_DEVICE
,
};
void
__iomem
*
at91_ioremap
(
unsigned
long
p
,
size_t
size
,
unsigned
int
type
)
{
if
(
p
>=
AT91_BASE_SYS
&&
p
<=
(
AT91_BASE_SYS
+
SZ_16K
-
1
))
return
(
void
__iomem
*
)
AT91_IO_P2V
(
p
);
return
__arm_ioremap_caller
(
p
,
size
,
type
,
__builtin_return_address
(
0
));
}
EXPORT_SYMBOL
(
at91_ioremap
);
void
at91_iounmap
(
volatile
void
__iomem
*
addr
)
{
unsigned
long
virt
=
(
unsigned
long
)
addr
;
if
(
virt
>=
VMALLOC_START
&&
virt
<
VMALLOC_END
)
__iounmap
(
addr
);
}
EXPORT_SYMBOL
(
at91_iounmap
);
#define AT91_DBGU0 0xfffff200
#define AT91_DBGU1 0xffffee00
...
...
arch/arm/mach-bcmring/dma.c
View file @
73829af7
...
...
@@ -1615,7 +1615,7 @@ DMA_MemType_t dma_mem_type(void *addr)
{
unsigned
long
addrVal
=
(
unsigned
long
)
addr
;
if
(
addrVal
>=
VMALLOC_END
)
{
if
(
addrVal
>=
CONSISTENT_BASE
)
{
/* NOTE: DMA virtual memory space starts at 0xFFxxxxxx */
/* dma_alloc_xxx pages are physically and virtually contiguous */
...
...
arch/arm/mach-bcmring/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
*
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* Move VMALLOC_END to 0xf0000000 so that the vm space can range from
* 0xe0000000 to 0xefffffff. This gives us 256 MB of vm space and handles
* larger physical memory designs better.
*/
#define VMALLOC_END 0xf0000000UL
arch/arm/mach-clps711x/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-clps711x/include/mach/vmalloc.h
*
* Copyright (C) 2000 Deep Blue Solutions Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xd0000000UL
arch/arm/mach-cns3xxx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Copyright 2000 Russell King.
* Copyright 2003 ARM Limited
* Copyright 2008 Cavium Networks
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as
* published by the Free Software Foundation.
*/
#define VMALLOC_END 0xd8000000UL
arch/arm/mach-davinci/Makefile
View file @
73829af7
...
...
@@ -4,7 +4,7 @@
#
# Common objects
obj-y
:=
time.o clock.o serial.o
io.o
psc.o
\
obj-y
:=
time.o clock.o serial.o psc.o
\
dma.o usb.o common.o sram.o aemif.o
obj-$(CONFIG_DAVINCI_MUX)
+=
mux.o
...
...
arch/arm/mach-davinci/include/mach/io.h
View file @
73829af7
...
...
@@ -21,12 +21,4 @@
#define __mem_pci(a) (a)
#define __mem_isa(a) (a)
#ifndef __ASSEMBLER__
#define __arch_ioremap davinci_ioremap
#define __arch_iounmap davinci_iounmap
void
__iomem
*
davinci_ioremap
(
unsigned
long
phys
,
size_t
size
,
unsigned
int
type
);
void
davinci_iounmap
(
volatile
void
__iomem
*
addr
);
#endif
#endif
/* __ASM_ARCH_IO_H */
arch/arm/mach-davinci/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* DaVinci vmalloc definitions
*
* Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
*
* 2007 (c) MontaVista Software, Inc. This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed "as is" without any warranty of any kind, whether express
* or implied.
*/
#include <mach/hardware.h>
/* Allow vmalloc range until the IO virtual range minus a 2M "hole" */
#define VMALLOC_END (IO_VIRT - (2<<20))
arch/arm/mach-davinci/io.c
deleted
100644 → 0
View file @
742eaa6a
/*
* DaVinci I/O mapping code
*
* Copyright (C) 2005-2006 Texas Instruments
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/module.h>
#include <linux/io.h>
#include <asm/tlb.h>
#include <asm/mach/map.h>
#include <mach/common.h>
/*
* Intercept ioremap() requests for addresses in our fixed mapping regions.
*/
void
__iomem
*
davinci_ioremap
(
unsigned
long
p
,
size_t
size
,
unsigned
int
type
)
{
struct
map_desc
*
desc
=
davinci_soc_info
.
io_desc
;
int
desc_num
=
davinci_soc_info
.
io_desc_num
;
int
i
;
for
(
i
=
0
;
i
<
desc_num
;
i
++
,
desc
++
)
{
unsigned
long
iophys
=
__pfn_to_phys
(
desc
->
pfn
);
unsigned
long
iosize
=
desc
->
length
;
if
(
p
>=
iophys
&&
(
p
+
size
)
<=
(
iophys
+
iosize
))
return
__io
(
desc
->
virtual
+
p
-
iophys
);
}
return
__arm_ioremap_caller
(
p
,
size
,
type
,
__builtin_return_address
(
0
));
}
EXPORT_SYMBOL
(
davinci_ioremap
);
void
davinci_iounmap
(
volatile
void
__iomem
*
addr
)
{
unsigned
long
virt
=
(
unsigned
long
)
addr
;
if
(
virt
>=
VMALLOC_START
&&
virt
<
VMALLOC_END
)
__iounmap
(
addr
);
}
EXPORT_SYMBOL
(
davinci_iounmap
);
arch/arm/mach-dove/include/mach/dove.h
View file @
73829af7
...
...
@@ -11,8 +11,6 @@
#ifndef __ASM_ARCH_DOVE_H
#define __ASM_ARCH_DOVE_H
#include <mach/vmalloc.h>
/*
* Marvell Dove address maps.
*
...
...
arch/arm/mach-dove/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-dove/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfd800000UL
arch/arm/mach-ebsa110/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-ebsa110/include/mach/vmalloc.h
*
* Copyright (C) 1998 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#define VMALLOC_END 0xdf000000UL
arch/arm/mach-ep93xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-ep93xx/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfe800000UL
arch/arm/mach-exynos/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* linux/arch/arm/mach-exynos4/include/mach/vmalloc.h
*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Copyright 2010 Ben Dooks <ben-linux@fluff.org>
*
* Based on arch/arm/mach-s5p6440/include/mach/vmalloc.h
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* EXYNOS4 vmalloc definition
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H __FILE__
#define VMALLOC_END 0xF6000000UL
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-footbridge/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-footbridge/include/mach/vmalloc.h
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#define VMALLOC_END 0xf0000000UL
arch/arm/mach-gemini/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#define VMALLOC_END 0xf0000000UL
arch/arm/mach-h720x/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-h720x/include/mach/vmalloc.h
*/
#ifndef __ARCH_ARM_VMALLOC_H
#define __ARCH_ARM_VMALLOC_H
#define VMALLOC_END 0xd0000000UL
#endif
arch/arm/mach-highbank/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
#define VMALLOC_END 0xFEE00000UL
arch/arm/mach-integrator/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-integrator/include/mach/vmalloc.h
*
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xd0000000UL
arch/arm/mach-iop13xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
#ifndef _VMALLOC_H_
#define _VMALLOC_H_
#define VMALLOC_END 0xfa000000UL
#endif
arch/arm/mach-iop32x/include/mach/io.h
View file @
73829af7
...
...
@@ -13,15 +13,8 @@
#include <asm/hardware/iop3xx.h>
extern
void
__iomem
*
__iop3xx_ioremap
(
unsigned
long
cookie
,
size_t
size
,
unsigned
int
mtype
);
extern
void
__iop3xx_iounmap
(
void
__iomem
*
addr
);
#define IO_SPACE_LIMIT 0xffffffff
#define __io(p) ((void __iomem *)IOP3XX_PCI_IO_PHYS_TO_VIRT(p))
#define __mem_pci(a) (a)
#define __arch_ioremap __iop3xx_ioremap
#define __arch_iounmap __iop3xx_iounmap
#endif
arch/arm/mach-iop32x/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-iop32x/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfe000000UL
arch/arm/mach-iop33x/include/mach/io.h
View file @
73829af7
...
...
@@ -13,15 +13,8 @@
#include <asm/hardware/iop3xx.h>
extern
void
__iomem
*
__iop3xx_ioremap
(
unsigned
long
cookie
,
size_t
size
,
unsigned
int
mtype
);
extern
void
__iop3xx_iounmap
(
void
__iomem
*
addr
);
#define IO_SPACE_LIMIT 0xffffffff
#define __io(p) ((void __iomem *)IOP3XX_PCI_IO_PHYS_TO_VIRT(p))
#define __mem_pci(a) (a)
#define __arch_ioremap __iop3xx_ioremap
#define __arch_iounmap __iop3xx_iounmap
#endif
arch/arm/mach-iop33x/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-iop33x/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfe000000UL
arch/arm/mach-ixp2000/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-ixp2000/include/mach/vmalloc.h
*
* Author: Naeem Afzal <naeem.m.afzal@intel.com>
*
* Copyright 2002 Intel Corp.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* Just any arbitrary offset to the start of the vmalloc VM area: the
* current 8MB value just means that there will be a 8MB "hole" after the
* physical memory until the kernel virtual memory starts. That means that
* any out-of-bounds memory accesses will hopefully be caught.
* The vmalloc() routines leaves a hole of 4kB between each vmalloced
* area for the same reason. ;)
*/
#define VMALLOC_END 0xfb000000UL
arch/arm/mach-ixp23xx/include/mach/io.h
View file @
73829af7
...
...
@@ -20,33 +20,4 @@
#define __io(p) ((void __iomem*)((p) + IXP23XX_PCI_IO_VIRT))
#define __mem_pci(a) (a)
static
inline
void
__iomem
*
ixp23xx_ioremap
(
unsigned
long
addr
,
unsigned
long
size
,
unsigned
int
mtype
)
{
if
(
addr
>=
IXP23XX_PCI_MEM_START
&&
addr
<=
IXP23XX_PCI_MEM_START
+
IXP23XX_PCI_MEM_SIZE
)
{
if
(
addr
+
size
>
IXP23XX_PCI_MEM_START
+
IXP23XX_PCI_MEM_SIZE
)
return
NULL
;
return
(
void
__iomem
*
)
((
addr
-
IXP23XX_PCI_MEM_START
)
+
IXP23XX_PCI_MEM_VIRT
);
}
return
__arm_ioremap
(
addr
,
size
,
mtype
);
}
static
inline
void
ixp23xx_iounmap
(
void
__iomem
*
addr
)
{
if
((((
u32
)
addr
)
>=
IXP23XX_PCI_MEM_VIRT
)
&&
(((
u32
)
addr
)
<
IXP23XX_PCI_MEM_VIRT
+
IXP23XX_PCI_MEM_SIZE
))
return
;
__iounmap
(
addr
);
}
#define __arch_ioremap ixp23xx_ioremap
#define __arch_iounmap ixp23xx_iounmap
#endif
arch/arm/mach-ixp23xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-ixp23xx/include/mach/vmalloc.h
*
* Copyright (c) 2005 MontaVista Software, Inc.
*
* NPU mappings end at 0xf0000000 and we allocate 64MB for board
* specific static I/O.
*/
#define VMALLOC_END (0xec000000UL)
arch/arm/mach-ixp4xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-ixp4xx/include/mach/vmalloc.h
*/
#define VMALLOC_END (0xff000000UL)
arch/arm/mach-kirkwood/include/mach/io.h
View file @
73829af7
...
...
@@ -19,31 +19,6 @@ static inline void __iomem *__io(unsigned long addr)
+
KIRKWOOD_PCIE_IO_VIRT_BASE
);
}
static
inline
void
__iomem
*
__arch_ioremap
(
unsigned
long
paddr
,
size_t
size
,
unsigned
int
mtype
)
{
void
__iomem
*
retval
;
unsigned
long
offs
=
paddr
-
KIRKWOOD_REGS_PHYS_BASE
;
if
(
mtype
==
MT_DEVICE
&&
size
&&
offs
<
KIRKWOOD_REGS_SIZE
&&
size
<=
KIRKWOOD_REGS_SIZE
&&
offs
+
size
<=
KIRKWOOD_REGS_SIZE
)
{
retval
=
(
void
__iomem
*
)
KIRKWOOD_REGS_VIRT_BASE
+
offs
;
}
else
{
retval
=
__arm_ioremap
(
paddr
,
size
,
mtype
);
}
return
retval
;
}
static
inline
void
__arch_iounmap
(
void
__iomem
*
addr
)
{
if
(
addr
<
(
void
__iomem
*
)
KIRKWOOD_REGS_VIRT_BASE
||
addr
>=
(
void
__iomem
*
)(
KIRKWOOD_REGS_VIRT_BASE
+
KIRKWOOD_REGS_SIZE
))
__iounmap
(
addr
);
}
#define __arch_ioremap __arch_ioremap
#define __arch_iounmap __arch_iounmap
#define __io(a) __io(a)
#define __mem_pci(a) (a)
...
...
arch/arm/mach-kirkwood/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-kirkwood/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfe800000UL
arch/arm/mach-ks8695/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-ks8695/include/mach/vmalloc.h
*
* Copyright (C) 2006 Ben Dooks
* Copyright (C) 2006 Simtec Electronics <linux@simtec.co.uk>
*
* KS8695 vmalloc definition
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END (KS8695_IO_VA & PGDIR_MASK)
#endif
arch/arm/mach-lpc32xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-lpc32xx/include/mach/vmalloc.h
*
* Author: Kevin Wells <kevin.wells@nxp.com>
*
* Copyright (C) 2010 NXP Semiconductors
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END 0xF0000000UL
#endif
arch/arm/mach-mmp/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* linux/arch/arm/mach-mmp/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfe000000UL
arch/arm/mach-msm/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* arch/arm/mach-msm/include/mach/vmalloc.h
*
* Copyright (C) 2007 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef __ASM_ARCH_MSM_VMALLOC_H
#define __ASM_ARCH_MSM_VMALLOC_H
#define VMALLOC_END 0xd0000000UL
#endif
arch/arm/mach-mv78xx0/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-mv78xx0/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfe000000UL
arch/arm/mach-mxs/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Copyright (C) 2000 Russell King.
* Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __MACH_MXS_VMALLOC_H__
#define __MACH_MXS_VMALLOC_H__
/* vmalloc ending address */
#define VMALLOC_END 0xf4000000UL
#endif
/* __MACH_MXS_VMALLOC_H__ */
arch/arm/mach-netx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-netx/include/mach/vmalloc.h
*
* Copyright (C) 2005 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xd0000000UL
arch/arm/mach-nomadik/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
#define VMALLOC_END 0xe8000000UL
arch/arm/mach-omap1/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-omap1/include/mach/vmalloc.h
*
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xd8000000UL
arch/arm/mach-omap1/io.c
View file @
73829af7
...
...
@@ -121,7 +121,6 @@ void __init omap16xx_map_io(void)
void
omap1_init_early
(
void
)
{
omap_check_revision
();
omap_ioremap_init
();
/* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
* on a Posted Write in the TIPB Bridge".
...
...
arch/arm/mach-omap2/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/plat-omap/include/mach/vmalloc.h
*
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xf8000000UL
arch/arm/mach-omap2/io.c
View file @
73829af7
...
...
@@ -319,7 +319,6 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data)
static
void
__init
omap_common_init_early
(
void
)
{
omap2_check_revision
();
omap_ioremap_init
();
omap_init_consistent_dma_size
();
}
...
...
arch/arm/mach-orion5x/include/mach/io.h
View file @
73829af7
...
...
@@ -15,31 +15,6 @@
#define IO_SPACE_LIMIT 0xffffffff
static
inline
void
__iomem
*
__arch_ioremap
(
unsigned
long
paddr
,
size_t
size
,
unsigned
int
mtype
)
{
void
__iomem
*
retval
;
unsigned
long
offs
=
paddr
-
ORION5X_REGS_PHYS_BASE
;
if
(
mtype
==
MT_DEVICE
&&
size
&&
offs
<
ORION5X_REGS_SIZE
&&
size
<=
ORION5X_REGS_SIZE
&&
offs
+
size
<=
ORION5X_REGS_SIZE
)
{
retval
=
(
void
__iomem
*
)
ORION5X_REGS_VIRT_BASE
+
offs
;
}
else
{
retval
=
__arm_ioremap
(
paddr
,
size
,
mtype
);
}
return
retval
;
}
static
inline
void
__arch_iounmap
(
void
__iomem
*
addr
)
{
if
(
addr
<
(
void
__iomem
*
)
ORION5X_REGS_VIRT_BASE
||
addr
>=
(
void
__iomem
*
)(
ORION5X_REGS_VIRT_BASE
+
ORION5X_REGS_SIZE
))
__iounmap
(
addr
);
}
#define __arch_ioremap __arch_ioremap
#define __arch_iounmap __arch_iounmap
#define __io(a) __typesafe_io(a)
#define __mem_pci(a) (a)
...
...
arch/arm/mach-orion5x/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-orion5x/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xfd800000UL
arch/arm/mach-picoxcell/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Copyright (c) 2011 Picochip Ltd., Jamie Iles
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#define VMALLOC_END 0xfe000000UL
arch/arm/mach-pnx4008/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-pnx4008/include/mach/vmalloc.h
*
* Author: Vitaly Wool <source@mvista.com>
*
* 2006 (c) MontaVista Software, Inc. This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed "as is" without any warranty of any kind, whether express
* or implied.
*/
/*
* Just any arbitrary offset to the start of the vmalloc VM area: the
* current 8MB value just means that there will be a 8MB "hole" after the
* physical memory until the kernel virtual memory starts. That means that
* any out-of-bounds memory accesses will hopefully be caught.
* The vmalloc() routines leaves a hole of 4kB between each vmalloced
* area for the same reason. ;)
*/
#define VMALLOC_END 0xd0000000UL
arch/arm/mach-prima2/include/mach/map.h
View file @
73829af7
...
...
@@ -9,8 +9,10 @@
#ifndef __MACH_PRIMA2_MAP_H__
#define __MACH_PRIMA2_MAP_H__
#include <
mach/vmalloc
.h>
#include <
linux/const
.h>
#define SIRFSOC_VA(x) (VMALLOC_END + ((x) & 0x00FFF000))
#define SIRFSOC_VA_BASE _AC(0xFEC00000, UL)
#define SIRFSOC_VA(x) (SIRFSOC_VA_BASE + ((x) & 0x00FFF000))
#endif
arch/arm/mach-prima2/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/ach-prima2/include/mach/vmalloc.h
*
* Copyright (c) 2010 – 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
*
* Licensed under GPLv2 or later.
*/
#ifndef __MACH_VMALLOC_H
#define __MACH_VMALLOC_H
#include <linux/const.h>
#define VMALLOC_END _AC(0xFEC00000, UL)
#endif
arch/arm/mach-pxa/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-pxa/include/mach/vmalloc.h
*
* Author: Nicolas Pitre
* Copyright: (C) 2001 MontaVista Software Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#define VMALLOC_END (0xe8000000UL)
arch/arm/mach-realview/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-realview/include/mach/vmalloc.h
*
* Copyright (C) 2003 ARM Limited
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xf8000000UL
arch/arm/mach-realview/realview_eb.c
View file @
73829af7
...
...
@@ -91,8 +91,8 @@ static struct map_desc realview_eb_io_desc[] __initdata = {
static
struct
map_desc
realview_eb11mp_io_desc
[]
__initdata
=
{
{
.
virtual
=
IO_ADDRESS
(
REALVIEW_EB11MP_
GIC_CP
U_BASE
),
.
pfn
=
__phys_to_pfn
(
REALVIEW_EB11MP_
GIC_CP
U_BASE
),
.
virtual
=
IO_ADDRESS
(
REALVIEW_EB11MP_
SC
U_BASE
),
.
pfn
=
__phys_to_pfn
(
REALVIEW_EB11MP_
SC
U_BASE
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
{
...
...
arch/arm/mach-realview/realview_pbx.c
View file @
73829af7
...
...
@@ -98,8 +98,8 @@ static struct map_desc realview_pbx_io_desc[] __initdata = {
static
struct
map_desc
realview_local_io_desc
[]
__initdata
=
{
{
.
virtual
=
IO_ADDRESS
(
REALVIEW_PBX_TILE_
GIC_CP
U_BASE
),
.
pfn
=
__phys_to_pfn
(
REALVIEW_PBX_TILE_
GIC_CP
U_BASE
),
.
virtual
=
IO_ADDRESS
(
REALVIEW_PBX_TILE_
SC
U_BASE
),
.
pfn
=
__phys_to_pfn
(
REALVIEW_PBX_TILE_
SC
U_BASE
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
{
...
...
arch/arm/mach-rpc/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-rpc/include/mach/vmalloc.h
*
* Copyright (C) 1997 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#define VMALLOC_END 0xdc000000UL
arch/arm/mach-s3c2410/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* arch/arm/mach-s3c2410/include/mach/vmalloc.h
*
* from arch/arm/mach-iop3xx/include/mach/vmalloc.h
*
* Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
* http://www.simtec.co.uk/products/SWLINUX/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* S3C2410 vmalloc definition
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END 0xF6000000UL
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-s3c64xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* arch/arm/mach-s3c64xx/include/mach/vmalloc.h
*
* from arch/arm/mach-iop3xx/include/mach/vmalloc.h
*
* Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
* http://www.simtec.co.uk/products/SWLINUX/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* S3C6400 vmalloc definition
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END 0xF6000000UL
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-s5p64x0/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* linux/arch/arm/mach-s5p64x0/include/mach/vmalloc.h
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Copyright 2010 Ben Dooks <ben-linux@fluff.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* S3C6400 vmalloc definition
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END 0xF6000000UL
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-s5pc100/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* arch/arm/mach-s5pc100/include/mach/vmalloc.h
*
* Copyright 2010 Ben Dooks <ben-linux@fluff.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* S3C6400 vmalloc definition
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END 0xF6000000UL
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-s5pv210/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* linux/arch/arm/mach-s5p6442/include/mach/vmalloc.h
*
* Copyright 2010 Ben Dooks <ben-linux@fluff.org>
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* Based on arch/arm/mach-s5p6442/include/mach/vmalloc.h
*
* S5PV210 vmalloc definition
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H __FILE__
#define VMALLOC_END 0xF6000000UL
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-sa1100/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-sa1100/include/mach/vmalloc.h
*/
#define VMALLOC_END (0xe8000000UL)
arch/arm/mach-shark/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-shark/include/mach/vmalloc.h
*/
#define VMALLOC_END 0xd0000000UL
arch/arm/mach-shmobile/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
#ifndef __ASM_MACH_VMALLOC_H
#define __ASM_MACH_VMALLOC_H
/* Vmalloc at ... - 0xe5ffffff */
#define VMALLOC_END 0xe6000000UL
#endif
/* __ASM_MACH_VMALLOC_H */
arch/arm/mach-spear3xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-spear3xx/include/mach/vmalloc.h
*
* Defining Vmalloc area for SPEAr3xx machine family
*
* Copyright (C) 2009 ST Microelectronics
* Viresh Kumar<viresh.kumar@st.com>
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#ifndef __MACH_VMALLOC_H
#define __MACH_VMALLOC_H
#include <plat/vmalloc.h>
#endif
/* __MACH_VMALLOC_H */
arch/arm/mach-spear6xx/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-spear6xx/include/mach/vmalloc.h
*
* Defining Vmalloc area for SPEAr6xx machine family
*
* Copyright (C) 2009 ST Microelectronics
* Rajeev Kumar<rajeev-dlh.kumar@st.com>
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#ifndef __MACH_VMALLOC_H
#define __MACH_VMALLOC_H
#include <plat/vmalloc.h>
#endif
/* __MACH_VMALLOC_H */
arch/arm/mach-tegra/include/mach/io.h
View file @
73829af7
...
...
@@ -71,12 +71,6 @@
#ifndef __ASSEMBLER__
#define __arch_ioremap tegra_ioremap
#define __arch_iounmap tegra_iounmap
void
__iomem
*
tegra_ioremap
(
unsigned
long
phys
,
size_t
size
,
unsigned
int
type
);
void
tegra_iounmap
(
volatile
void
__iomem
*
addr
);
#define IO_ADDRESS(n) (IO_TO_VIRT(n))
#ifdef CONFIG_TEGRA_PCI
...
...
arch/arm/mach-tegra/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-tegra/include/mach/vmalloc.h
*
* Copyright (C) 2010 Google, Inc.
*
* Author:
* Colin Cross <ccross@google.com>
* Erik Gilling <konkers@google.com>
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef __MACH_TEGRA_VMALLOC_H
#define __MACH_TEGRA_VMALLOC_H
#include <asm/sizes.h>
#define VMALLOC_END 0xFE000000UL
#endif
arch/arm/mach-tegra/io.c
View file @
73829af7
...
...
@@ -60,24 +60,3 @@ void __init tegra_map_common_io(void)
{
iotable_init
(
tegra_io_desc
,
ARRAY_SIZE
(
tegra_io_desc
));
}
/*
* Intercept ioremap() requests for addresses in our fixed mapping regions.
*/
void
__iomem
*
tegra_ioremap
(
unsigned
long
p
,
size_t
size
,
unsigned
int
type
)
{
void
__iomem
*
v
=
IO_ADDRESS
(
p
);
if
(
v
==
NULL
)
v
=
__arm_ioremap
(
p
,
size
,
type
);
return
v
;
}
EXPORT_SYMBOL
(
tegra_ioremap
);
void
tegra_iounmap
(
volatile
void
__iomem
*
addr
)
{
unsigned
long
virt
=
(
unsigned
long
)
addr
;
if
(
virt
>=
VMALLOC_START
&&
virt
<
VMALLOC_END
)
__iounmap
(
addr
);
}
EXPORT_SYMBOL
(
tegra_iounmap
);
arch/arm/mach-u300/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
*
* arch/arm/mach-u300/include/mach/vmalloc.h
*
*
* Copyright (C) 2006-2009 ST-Ericsson AB
* License terms: GNU General Public License (GPL) version 2
* Virtual memory allocations
* End must be above the I/O registers and on an even 2MiB boundary.
* Author: Linus Walleij <linus.walleij@stericsson.com>
*/
#define VMALLOC_END 0xfe800000UL
arch/arm/mach-ux500/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Copyright (C) 2009 ST-Ericsson
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xf0000000UL
arch/arm/mach-versatile/core.c
View file @
73829af7
...
...
@@ -141,11 +141,6 @@ static struct map_desc versatile_io_desc[] __initdata = {
},
#ifdef CONFIG_MACH_VERSATILE_AB
{
.
virtual
=
IO_ADDRESS
(
VERSATILE_GPIO0_BASE
),
.
pfn
=
__phys_to_pfn
(
VERSATILE_GPIO0_BASE
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
IO_ADDRESS
(
VERSATILE_IB2_BASE
),
.
pfn
=
__phys_to_pfn
(
VERSATILE_IB2_BASE
),
.
length
=
SZ_64M
,
...
...
arch/arm/mach-versatile/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-versatile/include/mach/vmalloc.h
*
* Copyright (C) 2003 ARM Limited
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xd8000000UL
arch/arm/mach-vexpress/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-vexpress/include/mach/vmalloc.h
*
* Copyright (C) 2003 ARM Limited
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xf8000000UL
arch/arm/mach-vt8500/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-vt8500/include/mach/vmalloc.h
*
* Copyright (C) 2000 Russell King.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define VMALLOC_END 0xd0000000UL
arch/arm/mach-w90x900/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/mach-w90x900/include/mach/vmalloc.h
*
* Copyright (c) 2008 Nuvoton technology corporation
* All rights reserved.
*
* Wan ZongShun <mcuos.com@gmail.com>
*
* Based on arch/arm/mach-s3c2410/include/mach/vmalloc.h
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*/
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END (0xe0000000UL)
#endif
/* __ASM_ARCH_VMALLOC_H */
arch/arm/mach-zynq/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/* arch/arm/mach-zynq/include/mach/vmalloc.h
*
* Copyright (C) 2011 Xilinx
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __MACH_VMALLOC_H__
#define __MACH_VMALLOC_H__
#define VMALLOC_END 0xE0000000UL
#endif
arch/arm/mm/init.c
View file @
73829af7
...
...
@@ -20,7 +20,6 @@
#include <linux/highmem.h>
#include <linux/gfp.h>
#include <linux/memblock.h>
#include <linux/sort.h>
#include <asm/mach-types.h>
#include <asm/prom.h>
...
...
@@ -139,25 +138,13 @@ static void __init find_limits(unsigned long *min, unsigned long *max_low,
struct
meminfo
*
mi
=
&
meminfo
;
int
i
;
*
min
=
-
1UL
;
*
max_low
=
*
max_high
=
0
;
for_each_bank
(
i
,
mi
)
{
struct
membank
*
bank
=
&
mi
->
bank
[
i
];
unsigned
long
start
,
end
;
start
=
bank_pfn_start
(
bank
);
end
=
bank_pfn_end
(
bank
);
if
(
*
min
>
start
)
*
min
=
start
;
if
(
*
max_high
<
end
)
*
max_high
=
end
;
if
(
bank
->
highmem
)
continue
;
if
(
*
max_low
<
end
)
*
max_low
=
end
;
}
/* This assumes the meminfo array is properly sorted */
*
min
=
bank_pfn_start
(
&
mi
->
bank
[
0
]);
for_each_bank
(
i
,
mi
)
if
(
mi
->
bank
[
i
].
highmem
)
break
;
*
max_low
=
bank_pfn_end
(
&
mi
->
bank
[
i
-
1
]);
*
max_high
=
bank_pfn_end
(
&
mi
->
bank
[
mi
->
nr_banks
-
1
]);
}
static
void
__init
arm_bootmem_init
(
unsigned
long
start_pfn
,
...
...
@@ -319,19 +306,10 @@ static void arm_memory_present(void)
}
#endif
static
int
__init
meminfo_cmp
(
const
void
*
_a
,
const
void
*
_b
)
{
const
struct
membank
*
a
=
_a
,
*
b
=
_b
;
long
cmp
=
bank_pfn_start
(
a
)
-
bank_pfn_start
(
b
);
return
cmp
<
0
?
-
1
:
cmp
>
0
?
1
:
0
;
}
void
__init
arm_memblock_init
(
struct
meminfo
*
mi
,
struct
machine_desc
*
mdesc
)
{
int
i
;
sort
(
&
meminfo
.
bank
,
meminfo
.
nr_banks
,
sizeof
(
meminfo
.
bank
[
0
]),
meminfo_cmp
,
NULL
);
memblock_init
();
for
(
i
=
0
;
i
<
mi
->
nr_banks
;
i
++
)
memblock_add
(
mi
->
bank
[
i
].
start
,
mi
->
bank
[
i
].
size
);
...
...
@@ -403,8 +381,6 @@ void __init bootmem_init(void)
*/
arm_bootmem_free
(
min
,
max_low
,
max_high
);
high_memory
=
__va
(((
phys_addr_t
)
max_low
<<
PAGE_SHIFT
)
-
1
)
+
1
;
/*
* This doesn't seem to be used by the Linux memory manager any
* more, but is used by ll_rw_block. If we can get rid of it, we
...
...
arch/arm/mm/ioremap.c
View file @
73829af7
...
...
@@ -36,12 +36,6 @@
#include <asm/mach/map.h>
#include "mm.h"
/*
* Used by ioremap() and iounmap() code to mark (super)section-mapped
* I/O regions in vm_struct->flags field.
*/
#define VM_ARM_SECTION_MAPPING 0x80000000
int
ioremap_page
(
unsigned
long
virt
,
unsigned
long
phys
,
const
struct
mem_type
*
mtype
)
{
...
...
@@ -201,12 +195,6 @@ void __iomem * __arm_ioremap_pfn_caller(unsigned long pfn,
if
(
pfn
>=
0x100000
&&
(
__pfn_to_phys
(
pfn
)
&
~
SUPERSECTION_MASK
))
return
NULL
;
/*
* Don't allow RAM to be mapped - this causes problems with ARMv6+
*/
if
(
WARN_ON
(
pfn_valid
(
pfn
)))
return
NULL
;
type
=
get_mem_type
(
mtype
);
if
(
!
type
)
return
NULL
;
...
...
@@ -216,6 +204,34 @@ void __iomem * __arm_ioremap_pfn_caller(unsigned long pfn,
*/
size
=
PAGE_ALIGN
(
offset
+
size
);
/*
* Try to reuse one of the static mapping whenever possible.
*/
read_lock
(
&
vmlist_lock
);
for
(
area
=
vmlist
;
area
;
area
=
area
->
next
)
{
if
(
!
size
||
(
sizeof
(
phys_addr_t
)
==
4
&&
pfn
>=
0x100000
))
break
;
if
(
!
(
area
->
flags
&
VM_ARM_STATIC_MAPPING
))
continue
;
if
((
area
->
flags
&
VM_ARM_MTYPE_MASK
)
!=
VM_ARM_MTYPE
(
mtype
))
continue
;
if
(
__phys_to_pfn
(
area
->
phys_addr
)
>
pfn
||
__pfn_to_phys
(
pfn
)
+
size
-
1
>
area
->
phys_addr
+
area
->
size
-
1
)
continue
;
/* we can drop the lock here as we know *area is static */
read_unlock
(
&
vmlist_lock
);
addr
=
(
unsigned
long
)
area
->
addr
;
addr
+=
__pfn_to_phys
(
pfn
)
-
area
->
phys_addr
;
return
(
void
__iomem
*
)
(
offset
+
addr
);
}
read_unlock
(
&
vmlist_lock
);
/*
* Don't allow RAM to be mapped - this causes problems with ARMv6+
*/
if
(
WARN_ON
(
pfn_valid
(
pfn
)))
return
NULL
;
area
=
get_vm_area_caller
(
size
,
VM_IOREMAP
,
caller
);
if
(
!
area
)
return
NULL
;
...
...
@@ -313,28 +329,34 @@ __arm_ioremap_exec(unsigned long phys_addr, size_t size, bool cached)
void
__iounmap
(
volatile
void
__iomem
*
io_addr
)
{
void
*
addr
=
(
void
*
)(
PAGE_MASK
&
(
unsigned
long
)
io_addr
);
#ifndef CONFIG_SMP
struct
vm_struct
**
p
,
*
tmp
;
struct
vm_struct
*
vm
;
read_lock
(
&
vmlist_lock
);
for
(
vm
=
vmlist
;
vm
;
vm
=
vm
->
next
)
{
if
(
vm
->
addr
>
addr
)
break
;
if
(
!
(
vm
->
flags
&
VM_IOREMAP
))
continue
;
/* If this is a static mapping we must leave it alone */
if
((
vm
->
flags
&
VM_ARM_STATIC_MAPPING
)
&&
(
vm
->
addr
<=
addr
)
&&
(
vm
->
addr
+
vm
->
size
>
addr
))
{
read_unlock
(
&
vmlist_lock
);
return
;
}
#ifndef CONFIG_SMP
/*
* If this is a section based mapping we need to handle it
* specially as the VM subsystem does not know how to handle
* such a beast. We need the lock here b/c we need to clear
* all the mappings before the area can be reclaimed
* by someone else.
* such a beast.
*/
write_lock
(
&
vmlist_lock
);
for
(
p
=
&
vmlist
;
(
tmp
=
*
p
)
;
p
=
&
tmp
->
next
)
{
if
((
tmp
->
flags
&
VM_IOREMAP
)
&&
(
tmp
->
addr
==
addr
))
{
if
(
tmp
->
flags
&
VM_ARM_SECTION_MAPPING
)
{
unmap_area_sections
((
unsigned
long
)
tmp
->
addr
,
tmp
->
size
);
}
if
((
vm
->
addr
==
addr
)
&&
(
vm
->
flags
&
VM_ARM_SECTION_MAPPING
))
{
unmap_area_sections
((
unsigned
long
)
vm
->
addr
,
vm
->
size
);
break
;
}
}
write_unlock
(
&
vmlist_lock
);
#endif
}
read_unlock
(
&
vmlist_lock
);
vunmap
(
addr
);
}
...
...
arch/arm/mm/mm.h
View file @
73829af7
...
...
@@ -21,6 +21,20 @@ const struct mem_type *get_mem_type(unsigned int type);
extern
void
__flush_dcache_page
(
struct
address_space
*
mapping
,
struct
page
*
page
);
/*
* ARM specific vm_struct->flags bits.
*/
/* (super)section-mapped I/O regions used by ioremap()/iounmap() */
#define VM_ARM_SECTION_MAPPING 0x80000000
/* permanent static mappings from iotable_init() */
#define VM_ARM_STATIC_MAPPING 0x40000000
/* mapping type (attributes) for permanent static mappings */
#define VM_ARM_MTYPE(mt) ((mt) << 20)
#define VM_ARM_MTYPE_MASK (0x1f << 20)
#endif
#ifdef CONFIG_ZONE_DMA
...
...
arch/arm/mm/mmu.c
View file @
73829af7
...
...
@@ -15,6 +15,7 @@
#include <linux/nodemask.h>
#include <linux/memblock.h>
#include <linux/fs.h>
#include <linux/vmalloc.h>
#include <asm/cputype.h>
#include <asm/sections.h>
...
...
@@ -529,13 +530,18 @@ EXPORT_SYMBOL(phys_mem_access_prot);
#define vectors_base() (vectors_high() ? 0xffff0000 : 0)
static
void
__init
*
early_alloc
(
unsigned
long
sz
)
static
void
__init
*
early_alloc
_aligned
(
unsigned
long
sz
,
unsigned
long
align
)
{
void
*
ptr
=
__va
(
memblock_alloc
(
sz
,
sz
));
void
*
ptr
=
__va
(
memblock_alloc
(
sz
,
align
));
memset
(
ptr
,
0
,
sz
);
return
ptr
;
}
static
void
__init
*
early_alloc
(
unsigned
long
sz
)
{
return
early_alloc_aligned
(
sz
,
sz
);
}
static
pte_t
*
__init
early_pte_alloc
(
pmd_t
*
pmd
,
unsigned
long
addr
,
unsigned
long
prot
)
{
if
(
pmd_none
(
*
pmd
))
{
...
...
@@ -685,9 +691,10 @@ static void __init create_mapping(struct map_desc *md)
}
if
((
md
->
type
==
MT_DEVICE
||
md
->
type
==
MT_ROM
)
&&
md
->
virtual
>=
PAGE_OFFSET
&&
md
->
virtual
<
VMALLOC_END
)
{
md
->
virtual
>=
PAGE_OFFSET
&&
(
md
->
virtual
<
VMALLOC_START
||
md
->
virtual
>=
VMALLOC_END
))
{
printk
(
KERN_WARNING
"BUG: mapping for 0x%08llx"
" at 0x%08lx o
verlaps
vmalloc space
\n
"
,
" at 0x%08lx o
ut of
vmalloc space
\n
"
,
(
long
long
)
__pfn_to_phys
((
u64
)
md
->
pfn
),
md
->
virtual
);
}
...
...
@@ -729,18 +736,33 @@ static void __init create_mapping(struct map_desc *md)
*/
void
__init
iotable_init
(
struct
map_desc
*
io_desc
,
int
nr
)
{
int
i
;
struct
map_desc
*
md
;
struct
vm_struct
*
vm
;
if
(
!
nr
)
return
;
for
(
i
=
0
;
i
<
nr
;
i
++
)
create_mapping
(
io_desc
+
i
);
vm
=
early_alloc_aligned
(
sizeof
(
*
vm
)
*
nr
,
__alignof__
(
*
vm
));
for
(
md
=
io_desc
;
nr
;
md
++
,
nr
--
)
{
create_mapping
(
md
);
vm
->
addr
=
(
void
*
)(
md
->
virtual
&
PAGE_MASK
);
vm
->
size
=
PAGE_ALIGN
(
md
->
length
+
(
md
->
virtual
&
~
PAGE_MASK
));
vm
->
phys_addr
=
__pfn_to_phys
(
md
->
pfn
);
vm
->
flags
=
VM_IOREMAP
|
VM_ARM_STATIC_MAPPING
;
vm
->
flags
|=
VM_ARM_MTYPE
(
md
->
type
);
vm
->
caller
=
iotable_init
;
vm_area_add_early
(
vm
++
);
}
}
static
void
*
__initdata
vmalloc_min
=
(
void
*
)(
VMALLOC_END
-
SZ_128M
);
static
void
*
__initdata
vmalloc_min
=
(
void
*
)(
VMALLOC_END
-
(
240
<<
20
)
-
VMALLOC_OFFSET
);
/*
* vmalloc=size forces the vmalloc area to be exactly 'size'
* bytes. This can be used to increase (or decrease) the vmalloc
* area - the default is
128
m.
* area - the default is
240
m.
*/
static
int
__init
early_vmalloc
(
char
*
arg
)
{
...
...
@@ -860,6 +882,7 @@ void __init sanity_check_meminfo(void)
}
#endif
meminfo
.
nr_banks
=
j
;
high_memory
=
__va
(
lowmem_limit
-
1
)
+
1
;
memblock_set_current_limit
(
lowmem_limit
);
}
...
...
@@ -890,10 +913,10 @@ static inline void prepare_page_table(void)
/*
* Clear out all the kernel space mappings, except for the first
* memory bank, up to the
end of the
vmalloc region.
* memory bank, up to the vmalloc region.
*/
for
(
addr
=
__phys_to_virt
(
end
);
addr
<
VMALLOC_
END
;
addr
+=
PMD_SIZE
)
addr
<
VMALLOC_
START
;
addr
+=
PMD_SIZE
)
pmd_clear
(
pmd_off_k
(
addr
));
}
...
...
@@ -920,8 +943,8 @@ void __init arm_mm_memblock_reserve(void)
}
/*
* Set up
device th
e mappings. Since we clear out the page tables for all
* mappings above VMALLOC_
END
, we will remove any debug device mappings.
* Set up
the devic
e mappings. Since we clear out the page tables for all
* mappings above VMALLOC_
START
, we will remove any debug device mappings.
* This means you have to be careful how you debug this function, or any
* called function. This means you can't use any function or debugging
* method which may touch any device, otherwise the kernel _will_ crash.
...
...
@@ -936,7 +959,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
*/
vectors_page
=
early_alloc
(
PAGE_SIZE
);
for
(
addr
=
VMALLOC_
END
;
addr
;
addr
+=
PMD_SIZE
)
for
(
addr
=
VMALLOC_
START
;
addr
;
addr
+=
PMD_SIZE
)
pmd_clear
(
pmd_off_k
(
addr
));
/*
...
...
arch/arm/mm/nommu.c
View file @
73829af7
...
...
@@ -29,6 +29,8 @@ void __init arm_mm_memblock_reserve(void)
void
__init
sanity_check_meminfo
(
void
)
{
phys_addr_t
end
=
bank_phys_end
(
&
meminfo
.
bank
[
meminfo
.
nr_banks
-
1
]);
high_memory
=
__va
(
end
-
1
)
+
1
;
}
/*
...
...
arch/arm/plat-iop/Makefile
View file @
73829af7
...
...
@@ -10,7 +10,6 @@ obj-$(CONFIG_ARCH_IOP32X) += i2c.o
obj-$(CONFIG_ARCH_IOP32X)
+=
pci.o
obj-$(CONFIG_ARCH_IOP32X)
+=
setup.o
obj-$(CONFIG_ARCH_IOP32X)
+=
time.o
obj-$(CONFIG_ARCH_IOP32X)
+=
io.o
obj-$(CONFIG_ARCH_IOP32X)
+=
cp6.o
obj-$(CONFIG_ARCH_IOP32X)
+=
adma.o
obj-$(CONFIG_ARCH_IOP32X)
+=
pmu.o
...
...
@@ -21,7 +20,6 @@ obj-$(CONFIG_ARCH_IOP33X) += i2c.o
obj-$(CONFIG_ARCH_IOP33X)
+=
pci.o
obj-$(CONFIG_ARCH_IOP33X)
+=
setup.o
obj-$(CONFIG_ARCH_IOP33X)
+=
time.o
obj-$(CONFIG_ARCH_IOP33X)
+=
io.o
obj-$(CONFIG_ARCH_IOP33X)
+=
cp6.o
obj-$(CONFIG_ARCH_IOP33X)
+=
adma.o
obj-$(CONFIG_ARCH_IOP33X)
+=
pmu.o
...
...
arch/arm/plat-iop/io.c
deleted
100644 → 0
View file @
742eaa6a
/*
* iop3xx custom ioremap implementation
* Copyright (c) 2006, Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307 USA.
*
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/io.h>
#include <mach/hardware.h>
void
*
__iomem
__iop3xx_ioremap
(
unsigned
long
cookie
,
size_t
size
,
unsigned
int
mtype
)
{
void
__iomem
*
retval
;
switch
(
cookie
)
{
case
IOP3XX_PCI_LOWER_IO_PA
...
IOP3XX_PCI_UPPER_IO_PA
:
retval
=
(
void
*
)
IOP3XX_PCI_IO_PHYS_TO_VIRT
(
cookie
);
break
;
case
IOP3XX_PERIPHERAL_PHYS_BASE
...
IOP3XX_PERIPHERAL_UPPER_PA
:
retval
=
(
void
*
)
IOP3XX_PMMR_PHYS_TO_VIRT
(
cookie
);
break
;
default:
retval
=
__arm_ioremap_caller
(
cookie
,
size
,
mtype
,
__builtin_return_address
(
0
));
}
return
retval
;
}
EXPORT_SYMBOL
(
__iop3xx_ioremap
);
void
__iop3xx_iounmap
(
void
__iomem
*
addr
)
{
extern
void
__iounmap
(
volatile
void
__iomem
*
addr
);
switch
((
u32
)
addr
)
{
case
IOP3XX_PCI_LOWER_IO_VA
...
IOP3XX_PCI_UPPER_IO_VA
:
case
IOP3XX_PERIPHERAL_VIRT_BASE
...
IOP3XX_PERIPHERAL_UPPER_VA
:
goto
skip
;
}
__iounmap
(
addr
);
skip:
return
;
}
EXPORT_SYMBOL
(
__iop3xx_iounmap
);
arch/arm/plat-mxc/include/mach/mx1.h
View file @
73829af7
...
...
@@ -12,8 +12,6 @@
#ifndef __MACH_MX1_H__
#define __MACH_MX1_H__
#include <mach/vmalloc.h>
/*
* Memory map
*/
...
...
arch/arm/plat-mxc/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Copyright (C) 2000 Russell King.
* Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __ASM_ARCH_MXC_VMALLOC_H__
#define __ASM_ARCH_MXC_VMALLOC_H__
/* vmalloc ending address */
#define VMALLOC_END 0xf4000000UL
#endif
/* __ASM_ARCH_MXC_VMALLOC_H__ */
arch/arm/plat-omap/Makefile
View file @
73829af7
...
...
@@ -4,7 +4,7 @@
# Common support
obj-y
:=
common.o sram.o clock.o devices.o dma.o mux.o
\
usb.o fb.o
io.o
counter_32k.o
usb.o fb.o counter_32k.o
obj-m
:=
obj-n
:=
obj-
:=
...
...
arch/arm/plat-omap/common.c
View file @
73829af7
...
...
@@ -66,3 +66,10 @@ void __init omap_reserve(void)
omap_vram_reserve_sdram_memblock
();
omap_dsp_reserve_sdram_memblock
();
}
void
__init
omap_init_consistent_dma_size
(
void
)
{
#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
init_consistent_dma_size
(
CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
<<
20
);
#endif
}
arch/arm/plat-omap/include/plat/io.h
View file @
73829af7
...
...
@@ -247,8 +247,6 @@
* NOTE: Please use ioremap + __raw_read/write where possible instead of these
*/
void
omap_ioremap_init
(
void
);
extern
u8
omap_readb
(
u32
pa
);
extern
u16
omap_readw
(
u32
pa
);
extern
u32
omap_readl
(
u32
pa
);
...
...
@@ -260,12 +258,6 @@ struct omap_sdrc_params;
extern
void
omap_sdrc_init
(
struct
omap_sdrc_params
*
sdrc_cs0
,
struct
omap_sdrc_params
*
sdrc_cs1
);
#define __arch_ioremap omap_ioremap
#define __arch_iounmap omap_iounmap
void
__iomem
*
omap_ioremap
(
unsigned
long
phys
,
size_t
size
,
unsigned
int
type
);
void
omap_iounmap
(
volatile
void
__iomem
*
addr
);
extern
void
__init
omap_init_consistent_dma_size
(
void
);
#endif
...
...
arch/arm/plat-omap/io.c
deleted
100644 → 0
View file @
742eaa6a
/*
* Common io.c file
* This file is created by Russell King <rmk+kernel@arm.linux.org.uk>
*
* Copyright (C) 2009 Texas Instruments
* Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/module.h>
#include <linux/io.h>
#include <linux/mm.h>
#include <linux/dma-mapping.h>
#include <plat/omap7xx.h>
#include <plat/omap1510.h>
#include <plat/omap16xx.h>
#include <plat/omap24xx.h>
#include <plat/omap34xx.h>
#include <plat/omap44xx.h>
#define BETWEEN(p,st,sz) ((p) >= (st) && (p) < ((st) + (sz)))
#define XLATE(p,pst,vst) ((void __iomem *)((p) - (pst) + (vst)))
static
int
initialized
;
/*
* Intercept ioremap() requests for addresses in our fixed mapping regions.
*/
void
__iomem
*
omap_ioremap
(
unsigned
long
p
,
size_t
size
,
unsigned
int
type
)
{
WARN
(
!
initialized
,
"Do not use ioremap before init_early
\n
"
);
#ifdef CONFIG_ARCH_OMAP1
if
(
cpu_class_is_omap1
())
{
if
(
BETWEEN
(
p
,
OMAP1_IO_PHYS
,
OMAP1_IO_SIZE
))
return
XLATE
(
p
,
OMAP1_IO_PHYS
,
OMAP1_IO_VIRT
);
}
if
(
cpu_is_omap7xx
())
{
if
(
BETWEEN
(
p
,
OMAP7XX_DSP_BASE
,
OMAP7XX_DSP_SIZE
))
return
XLATE
(
p
,
OMAP7XX_DSP_BASE
,
OMAP7XX_DSP_START
);
if
(
BETWEEN
(
p
,
OMAP7XX_DSPREG_BASE
,
OMAP7XX_DSPREG_SIZE
))
return
XLATE
(
p
,
OMAP7XX_DSPREG_BASE
,
OMAP7XX_DSPREG_START
);
}
if
(
cpu_is_omap15xx
())
{
if
(
BETWEEN
(
p
,
OMAP1510_DSP_BASE
,
OMAP1510_DSP_SIZE
))
return
XLATE
(
p
,
OMAP1510_DSP_BASE
,
OMAP1510_DSP_START
);
if
(
BETWEEN
(
p
,
OMAP1510_DSPREG_BASE
,
OMAP1510_DSPREG_SIZE
))
return
XLATE
(
p
,
OMAP1510_DSPREG_BASE
,
OMAP1510_DSPREG_START
);
}
if
(
cpu_is_omap16xx
())
{
if
(
BETWEEN
(
p
,
OMAP16XX_DSP_BASE
,
OMAP16XX_DSP_SIZE
))
return
XLATE
(
p
,
OMAP16XX_DSP_BASE
,
OMAP16XX_DSP_START
);
if
(
BETWEEN
(
p
,
OMAP16XX_DSPREG_BASE
,
OMAP16XX_DSPREG_SIZE
))
return
XLATE
(
p
,
OMAP16XX_DSPREG_BASE
,
OMAP16XX_DSPREG_START
);
}
#endif
#ifdef CONFIG_ARCH_OMAP2
if
(
cpu_is_omap24xx
())
{
if
(
BETWEEN
(
p
,
L3_24XX_PHYS
,
L3_24XX_SIZE
))
return
XLATE
(
p
,
L3_24XX_PHYS
,
L3_24XX_VIRT
);
if
(
BETWEEN
(
p
,
L4_24XX_PHYS
,
L4_24XX_SIZE
))
return
XLATE
(
p
,
L4_24XX_PHYS
,
L4_24XX_VIRT
);
}
if
(
cpu_is_omap2420
())
{
if
(
BETWEEN
(
p
,
DSP_MEM_2420_PHYS
,
DSP_MEM_2420_SIZE
))
return
XLATE
(
p
,
DSP_MEM_2420_PHYS
,
DSP_MEM_2420_VIRT
);
if
(
BETWEEN
(
p
,
DSP_IPI_2420_PHYS
,
DSP_IPI_2420_SIZE
))
return
XLATE
(
p
,
DSP_IPI_2420_PHYS
,
DSP_IPI_2420_SIZE
);
if
(
BETWEEN
(
p
,
DSP_MMU_2420_PHYS
,
DSP_MMU_2420_SIZE
))
return
XLATE
(
p
,
DSP_MMU_2420_PHYS
,
DSP_MMU_2420_VIRT
);
}
if
(
cpu_is_omap2430
())
{
if
(
BETWEEN
(
p
,
L4_WK_243X_PHYS
,
L4_WK_243X_SIZE
))
return
XLATE
(
p
,
L4_WK_243X_PHYS
,
L4_WK_243X_VIRT
);
if
(
BETWEEN
(
p
,
OMAP243X_GPMC_PHYS
,
OMAP243X_GPMC_SIZE
))
return
XLATE
(
p
,
OMAP243X_GPMC_PHYS
,
OMAP243X_GPMC_VIRT
);
if
(
BETWEEN
(
p
,
OMAP243X_SDRC_PHYS
,
OMAP243X_SDRC_SIZE
))
return
XLATE
(
p
,
OMAP243X_SDRC_PHYS
,
OMAP243X_SDRC_VIRT
);
if
(
BETWEEN
(
p
,
OMAP243X_SMS_PHYS
,
OMAP243X_SMS_SIZE
))
return
XLATE
(
p
,
OMAP243X_SMS_PHYS
,
OMAP243X_SMS_VIRT
);
}
#endif
#ifdef CONFIG_ARCH_OMAP3
if
(
cpu_is_ti816x
())
{
if
(
BETWEEN
(
p
,
L4_34XX_PHYS
,
L4_34XX_SIZE
))
return
XLATE
(
p
,
L4_34XX_PHYS
,
L4_34XX_VIRT
);
}
else
if
(
cpu_is_omap34xx
())
{
if
(
BETWEEN
(
p
,
L3_34XX_PHYS
,
L3_34XX_SIZE
))
return
XLATE
(
p
,
L3_34XX_PHYS
,
L3_34XX_VIRT
);
if
(
BETWEEN
(
p
,
L4_34XX_PHYS
,
L4_34XX_SIZE
))
return
XLATE
(
p
,
L4_34XX_PHYS
,
L4_34XX_VIRT
);
if
(
BETWEEN
(
p
,
OMAP34XX_GPMC_PHYS
,
OMAP34XX_GPMC_SIZE
))
return
XLATE
(
p
,
OMAP34XX_GPMC_PHYS
,
OMAP34XX_GPMC_VIRT
);
if
(
BETWEEN
(
p
,
OMAP343X_SMS_PHYS
,
OMAP343X_SMS_SIZE
))
return
XLATE
(
p
,
OMAP343X_SMS_PHYS
,
OMAP343X_SMS_VIRT
);
if
(
BETWEEN
(
p
,
OMAP343X_SDRC_PHYS
,
OMAP343X_SDRC_SIZE
))
return
XLATE
(
p
,
OMAP343X_SDRC_PHYS
,
OMAP343X_SDRC_VIRT
);
if
(
BETWEEN
(
p
,
L4_PER_34XX_PHYS
,
L4_PER_34XX_SIZE
))
return
XLATE
(
p
,
L4_PER_34XX_PHYS
,
L4_PER_34XX_VIRT
);
if
(
BETWEEN
(
p
,
L4_EMU_34XX_PHYS
,
L4_EMU_34XX_SIZE
))
return
XLATE
(
p
,
L4_EMU_34XX_PHYS
,
L4_EMU_34XX_VIRT
);
}
#endif
#ifdef CONFIG_ARCH_OMAP4
if
(
cpu_is_omap44xx
())
{
if
(
BETWEEN
(
p
,
L3_44XX_PHYS
,
L3_44XX_SIZE
))
return
XLATE
(
p
,
L3_44XX_PHYS
,
L3_44XX_VIRT
);
if
(
BETWEEN
(
p
,
L4_44XX_PHYS
,
L4_44XX_SIZE
))
return
XLATE
(
p
,
L4_44XX_PHYS
,
L4_44XX_VIRT
);
if
(
BETWEEN
(
p
,
OMAP44XX_GPMC_PHYS
,
OMAP44XX_GPMC_SIZE
))
return
XLATE
(
p
,
OMAP44XX_GPMC_PHYS
,
OMAP44XX_GPMC_VIRT
);
if
(
BETWEEN
(
p
,
OMAP44XX_EMIF1_PHYS
,
OMAP44XX_EMIF1_SIZE
))
return
XLATE
(
p
,
OMAP44XX_EMIF1_PHYS
,
\
OMAP44XX_EMIF1_VIRT
);
if
(
BETWEEN
(
p
,
OMAP44XX_EMIF2_PHYS
,
OMAP44XX_EMIF2_SIZE
))
return
XLATE
(
p
,
OMAP44XX_EMIF2_PHYS
,
\
OMAP44XX_EMIF2_VIRT
);
if
(
BETWEEN
(
p
,
OMAP44XX_DMM_PHYS
,
OMAP44XX_DMM_SIZE
))
return
XLATE
(
p
,
OMAP44XX_DMM_PHYS
,
OMAP44XX_DMM_VIRT
);
if
(
BETWEEN
(
p
,
L4_PER_44XX_PHYS
,
L4_PER_44XX_SIZE
))
return
XLATE
(
p
,
L4_PER_44XX_PHYS
,
L4_PER_44XX_VIRT
);
if
(
BETWEEN
(
p
,
L4_EMU_44XX_PHYS
,
L4_EMU_44XX_SIZE
))
return
XLATE
(
p
,
L4_EMU_44XX_PHYS
,
L4_EMU_44XX_VIRT
);
}
#endif
return
__arm_ioremap_caller
(
p
,
size
,
type
,
__builtin_return_address
(
0
));
}
EXPORT_SYMBOL
(
omap_ioremap
);
void
omap_iounmap
(
volatile
void
__iomem
*
addr
)
{
unsigned
long
virt
=
(
unsigned
long
)
addr
;
if
(
virt
>=
VMALLOC_START
&&
virt
<
VMALLOC_END
)
__iounmap
(
addr
);
}
EXPORT_SYMBOL
(
omap_iounmap
);
void
__init
omap_init_consistent_dma_size
(
void
)
{
#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
init_consistent_dma_size
(
CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
<<
20
);
#endif
}
void
__init
omap_ioremap_init
(
void
)
{
initialized
++
;
}
arch/arm/plat-spear/include/plat/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* arch/arm/plat-spear/include/plat/vmalloc.h
*
* Defining Vmalloc area for SPEAr platform
*
* Copyright (C) 2009 ST Microelectronics
* Viresh Kumar<viresh.kumar@st.com>
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#ifndef __PLAT_VMALLOC_H
#define __PLAT_VMALLOC_H
#define VMALLOC_END 0xF0000000UL
#endif
/* __PLAT_VMALLOC_H */
arch/arm/plat-tcc/include/mach/vmalloc.h
deleted
100644 → 0
View file @
742eaa6a
/*
* Author: <linux@telechips.com>
* Created: June 10, 2008
*
* Copyright (C) 2000 Russell King.
* Copyright (C) 2008-2009 Telechips
*
* Licensed under the terms of the GPL v2.
*/
#define VMALLOC_END 0xf0000000UL
include/linux/vmalloc.h
View file @
73829af7
...
...
@@ -131,6 +131,7 @@ extern long vwrite(char *buf, char *addr, unsigned long count);
*/
extern
rwlock_t
vmlist_lock
;
extern
struct
vm_struct
*
vmlist
;
extern
__init
void
vm_area_add_early
(
struct
vm_struct
*
vm
);
extern
__init
void
vm_area_register_early
(
struct
vm_struct
*
vm
,
size_t
align
);
#ifdef CONFIG_SMP
...
...
mm/vmalloc.c
View file @
73829af7
...
...
@@ -1117,6 +1117,32 @@ void *vm_map_ram(struct page **pages, unsigned int count, int node, pgprot_t pro
}
EXPORT_SYMBOL
(
vm_map_ram
);
/**
* vm_area_add_early - add vmap area early during boot
* @vm: vm_struct to add
*
* This function is used to add fixed kernel vm area to vmlist before
* vmalloc_init() is called. @vm->addr, @vm->size, and @vm->flags
* should contain proper values and the other fields should be zero.
*
* DO NOT USE THIS FUNCTION UNLESS YOU KNOW WHAT YOU'RE DOING.
*/
void
__init
vm_area_add_early
(
struct
vm_struct
*
vm
)
{
struct
vm_struct
*
tmp
,
**
p
;
BUG_ON
(
vmap_initialized
);
for
(
p
=
&
vmlist
;
(
tmp
=
*
p
)
!=
NULL
;
p
=
&
tmp
->
next
)
{
if
(
tmp
->
addr
>=
vm
->
addr
)
{
BUG_ON
(
tmp
->
addr
<
vm
->
addr
+
vm
->
size
);
break
;
}
else
BUG_ON
(
tmp
->
addr
+
tmp
->
size
>
vm
->
addr
);
}
vm
->
next
=
*
p
;
*
p
=
vm
;
}
/**
* vm_area_register_early - register vmap area early during boot
* @vm: vm_struct to register
...
...
@@ -1139,8 +1165,7 @@ void __init vm_area_register_early(struct vm_struct *vm, size_t align)
vm
->
addr
=
(
void
*
)
addr
;
vm
->
next
=
vmlist
;
vmlist
=
vm
;
vm_area_add_early
(
vm
);
}
void
__init
vmalloc_init
(
void
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment