Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
0cd21ebc
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
0cd21ebc
编写于
8月 23, 2011
作者:
R
Russell King
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dma-size' of
git://git.yxit.co.uk/linux
into devel-stable
上级
fcb8ce5c
97fef8bd
变更
30
隐藏空白更改
内联
并排
Showing
30 changed file
with
86 addition
and
82 deletion
+86
-82
arch/arm/include/asm/dma-mapping.h
arch/arm/include/asm/dma-mapping.h
+7
-0
arch/arm/include/asm/memory.h
arch/arm/include/asm/memory.h
+0
-9
arch/arm/mach-at91/at91sam9g45.c
arch/arm/mach-at91/at91sam9g45.c
+2
-0
arch/arm/mach-at91/include/mach/at91sam9g45.h
arch/arm/mach-at91/include/mach/at91sam9g45.h
+0
-2
arch/arm/mach-bcmring/include/mach/memory.h
arch/arm/mach-bcmring/include/mach/memory.h
+0
-5
arch/arm/mach-bcmring/mm.c
arch/arm/mach-bcmring/mm.c
+3
-0
arch/arm/mach-davinci/common.c
arch/arm/mach-davinci/common.c
+3
-0
arch/arm/mach-davinci/include/mach/memory.h
arch/arm/mach-davinci/include/mach/memory.h
+0
-5
arch/arm/mach-omap1/io.c
arch/arm/mach-omap1/io.c
+1
-0
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/io.c
+1
-1
arch/arm/mach-s3c64xx/cpu.c
arch/arm/mach-s3c64xx/cpu.c
+2
-0
arch/arm/mach-s3c64xx/include/mach/memory.h
arch/arm/mach-s3c64xx/include/mach/memory.h
+0
-2
arch/arm/mach-s5p64x0/cpu.c
arch/arm/mach-s5p64x0/cpu.c
+3
-0
arch/arm/mach-s5p64x0/include/mach/memory.h
arch/arm/mach-s5p64x0/include/mach/memory.h
+0
-1
arch/arm/mach-s5pv210/cpu.c
arch/arm/mach-s5pv210/cpu.c
+2
-0
arch/arm/mach-s5pv210/include/mach/memory.h
arch/arm/mach-s5pv210/include/mach/memory.h
+0
-1
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-ag5evm.c
+3
-0
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-ap4evb.c
+3
-0
arch/arm/mach-shmobile/board-g3evm.c
arch/arm/mach-shmobile/board-g3evm.c
+3
-0
arch/arm/mach-shmobile/board-g4evm.c
arch/arm/mach-shmobile/board-g4evm.c
+3
-0
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/board-mackerel.c
+3
-0
arch/arm/mach-shmobile/include/mach/memory.h
arch/arm/mach-shmobile/include/mach/memory.h
+0
-3
arch/arm/mach-u300/core.c
arch/arm/mach-u300/core.c
+3
-0
arch/arm/mach-u300/include/mach/memory.h
arch/arm/mach-u300/include/mach/memory.h
+0
-5
arch/arm/mm/dma-mapping.c
arch/arm/mm/dma-mapping.c
+34
-11
arch/arm/mm/init.c
arch/arm/mm/init.c
+0
-9
arch/arm/plat-mxc/include/mach/memory.h
arch/arm/plat-mxc/include/mach/memory.h
+0
-15
arch/arm/plat-omap/include/plat/io.h
arch/arm/plat-omap/include/plat/io.h
+2
-0
arch/arm/plat-omap/include/plat/memory.h
arch/arm/plat-omap/include/plat/memory.h
+0
-13
arch/arm/plat-omap/io.c
arch/arm/plat-omap/io.c
+8
-0
未找到文件。
arch/arm/include/asm/dma-mapping.h
浏览文件 @
0cd21ebc
...
...
@@ -205,6 +205,13 @@ extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *,
int
dma_mmap_writecombine
(
struct
device
*
,
struct
vm_area_struct
*
,
void
*
,
dma_addr_t
,
size_t
);
/*
* This can be called during boot to increase the size of the consistent
* DMA region above it's default value of 2MB. It must be called before the
* memory allocator is initialised, i.e. before any core_initcall.
*/
extern
void
__init
init_consistent_dma_size
(
unsigned
long
size
);
#ifdef CONFIG_DMABOUNCE
/*
...
...
arch/arm/include/asm/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -77,16 +77,7 @@
*/
#define IOREMAP_MAX_ORDER 24
/*
* Size of DMA-consistent memory region. Must be multiple of 2M,
* between 2MB and 14MB inclusive.
*/
#ifndef CONSISTENT_DMA_SIZE
#define CONSISTENT_DMA_SIZE SZ_2M
#endif
#define CONSISTENT_END (0xffe00000UL)
#define CONSISTENT_BASE (CONSISTENT_END - CONSISTENT_DMA_SIZE)
#else
/* CONFIG_MMU */
...
...
arch/arm/mach-at91/at91sam9g45.c
浏览文件 @
0cd21ebc
...
...
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/pm.h>
#include <linux/dma-mapping.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
...
...
@@ -319,6 +320,7 @@ static void at91sam9g45_poweroff(void)
static
void
__init
at91sam9g45_map_io
(
void
)
{
at91_init_sram
(
0
,
AT91SAM9G45_SRAM_BASE
,
AT91SAM9G45_SRAM_SIZE
);
init_consistent_dma_size
(
SZ_4M
);
}
static
void
__init
at91sam9g45_initialize
(
void
)
...
...
arch/arm/mach-at91/include/mach/at91sam9g45.h
浏览文件 @
0cd21ebc
...
...
@@ -128,8 +128,6 @@
#define AT91SAM9G45_EHCI_BASE 0x00800000
/* USB Host controller (EHCI) */
#define AT91SAM9G45_VDEC_BASE 0x00900000
/* Video Decoder Controller */
#define CONSISTENT_DMA_SIZE SZ_4M
/*
* DMA peripheral identifiers
* for hardware handshaking interface
...
...
arch/arm/mach-bcmring/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -25,9 +25,4 @@
#define PLAT_PHYS_OFFSET CFG_GLOBAL_RAM_BASE
/*
* Maximum DMA memory allowed is 14M
*/
#define CONSISTENT_DMA_SIZE (SZ_16M - SZ_2M)
#endif
arch/arm/mach-bcmring/mm.c
浏览文件 @
0cd21ebc
...
...
@@ -13,6 +13,7 @@
*****************************************************************************/
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <asm/mach/map.h>
#include <mach/hardware.h>
...
...
@@ -53,4 +54,6 @@ void __init bcmring_map_io(void)
{
iotable_init
(
bcmring_io_desc
,
ARRAY_SIZE
(
bcmring_io_desc
));
/* Maximum DMA memory allowed is 14M */
init_consistent_dma_size
(
14
<<
20
);
}
arch/arm/mach-davinci/common.c
浏览文件 @
0cd21ebc
...
...
@@ -12,6 +12,7 @@
#include <linux/io.h>
#include <linux/etherdevice.h>
#include <linux/davinci_emac.h>
#include <linux/dma-mapping.h>
#include <asm/tlb.h>
#include <asm/mach/map.h>
...
...
@@ -86,6 +87,8 @@ void __init davinci_common_init(struct davinci_soc_info *soc_info)
iotable_init
(
davinci_soc_info
.
io_desc
,
davinci_soc_info
.
io_desc_num
);
init_consistent_dma_size
(
14
<<
20
);
/*
* Normally devicemaps_init() would flush caches and tlb after
* mdesc->map_io(), but we must also do it here because of the CPU
...
...
arch/arm/mach-davinci/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -36,9 +36,4 @@
#define DDR2_MCLKSTOPEN_BIT BIT(30)
#define DDR2_LPMODEN_BIT BIT(31)
/*
* Increase size of DMA-consistent memory region
*/
#define CONSISTENT_DMA_SIZE (14<<20)
#endif
/* __ASM_ARCH_MEMORY_H */
arch/arm/mach-omap1/io.c
浏览文件 @
0cd21ebc
...
...
@@ -121,6 +121,7 @@ void __init omap1_map_common_io(void)
#endif
omap_sram_init
();
omap_init_consistent_dma_size
();
}
/*
...
...
arch/arm/mach-omap2/io.c
浏览文件 @
0cd21ebc
...
...
@@ -16,7 +16,6 @@
* 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/kernel.h>
#include <linux/init.h>
...
...
@@ -250,6 +249,7 @@ static void __init _omap2_map_common_io(void)
omap2_check_revision
();
omap_sram_init
();
omap_init_consistent_dma_size
();
}
#ifdef CONFIG_SOC_OMAP2420
...
...
arch/arm/mach-s3c64xx/cpu.c
浏览文件 @
0cd21ebc
...
...
@@ -20,6 +20,7 @@
#include <linux/serial_core.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/dma-mapping.h>
#include <mach/hardware.h>
#include <mach/map.h>
...
...
@@ -145,6 +146,7 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
/* initialise the io descriptors we need for initialisation */
iotable_init
(
s3c_iodesc
,
ARRAY_SIZE
(
s3c_iodesc
));
iotable_init
(
mach_desc
,
size
);
init_consistent_dma_size
(
SZ_8M
);
idcode
=
__raw_readl
(
S3C_VA_SYS
+
0x118
);
if
(
!
idcode
)
{
...
...
arch/arm/mach-s3c64xx/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -15,6 +15,4 @@
#define PLAT_PHYS_OFFSET UL(0x50000000)
#define CONSISTENT_DMA_SIZE SZ_8M
#endif
arch/arm/mach-s5p64x0/cpu.c
浏览文件 @
0cd21ebc
...
...
@@ -20,6 +20,7 @@
#include <linux/serial_core.h>
#include <linux/platform_device.h>
#include <linux/sched.h>
#include <linux/dma-mapping.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
...
...
@@ -111,6 +112,7 @@ void __init s5p6440_map_io(void)
iotable_init
(
s5p64x0_iodesc
,
ARRAY_SIZE
(
s5p64x0_iodesc
));
iotable_init
(
s5p6440_iodesc
,
ARRAY_SIZE
(
s5p6440_iodesc
));
init_consistent_dma_size
(
SZ_8M
);
}
void
__init
s5p6450_map_io
(
void
)
...
...
@@ -120,6 +122,7 @@ void __init s5p6450_map_io(void)
iotable_init
(
s5p64x0_iodesc
,
ARRAY_SIZE
(
s5p64x0_iodesc
));
iotable_init
(
s5p6450_iodesc
,
ARRAY_SIZE
(
s5p6450_iodesc
));
init_consistent_dma_size
(
SZ_8M
);
}
/*
...
...
arch/arm/mach-s5p64x0/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -14,6 +14,5 @@
#define __ASM_ARCH_MEMORY_H __FILE__
#define PLAT_PHYS_OFFSET UL(0x20000000)
#define CONSISTENT_DMA_SIZE SZ_8M
#endif
/* __ASM_ARCH_MEMORY_H */
arch/arm/mach-s5pv210/cpu.c
浏览文件 @
0cd21ebc
...
...
@@ -20,6 +20,7 @@
#include <linux/sysdev.h>
#include <linux/platform_device.h>
#include <linux/sched.h>
#include <linux/dma-mapping.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
...
...
@@ -119,6 +120,7 @@ static void s5pv210_sw_reset(void)
void
__init
s5pv210_map_io
(
void
)
{
iotable_init
(
s5pv210_iodesc
,
ARRAY_SIZE
(
s5pv210_iodesc
));
init_consistent_dma_size
(
14
<<
20
);
/* initialise device information early */
s5pv210_default_sdhci0
();
...
...
arch/arm/mach-s5pv210/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -14,7 +14,6 @@
#define __ASM_ARCH_MEMORY_H
#define PLAT_PHYS_OFFSET UL(0x20000000)
#define CONSISTENT_DMA_SIZE (SZ_8M + SZ_4M + SZ_2M)
/*
* Sparsemem support
...
...
arch/arm/mach-shmobile/board-ag5evm.c
浏览文件 @
0cd21ebc
...
...
@@ -37,6 +37,7 @@
#include <linux/mmc/sh_mobile_sdhi.h>
#include <linux/mfd/tmio.h>
#include <linux/sh_clk.h>
#include <linux/dma-mapping.h>
#include <video/sh_mobile_lcdc.h>
#include <video/sh_mipi_dsi.h>
#include <sound/sh_fsi.h>
...
...
@@ -446,6 +447,8 @@ static struct map_desc ag5evm_io_desc[] __initdata = {
static
void
__init
ag5evm_map_io
(
void
)
{
iotable_init
(
ag5evm_io_desc
,
ARRAY_SIZE
(
ag5evm_io_desc
));
/* DMA memory at 0xf6000000 - 0xffdfffff */
init_consistent_dma_size
(
158
<<
20
);
/* setup early devices and console here as well */
sh73a0_add_early_devices
();
...
...
arch/arm/mach-shmobile/board-ap4evb.c
浏览文件 @
0cd21ebc
...
...
@@ -42,6 +42,7 @@
#include <linux/leds.h>
#include <linux/input/sh_keysc.h>
#include <linux/usb/r8a66597.h>
#include <linux/dma-mapping.h>
#include <media/sh_mobile_ceu.h>
#include <media/sh_mobile_csi2.h>
...
...
@@ -1170,6 +1171,8 @@ static struct map_desc ap4evb_io_desc[] __initdata = {
static
void
__init
ap4evb_map_io
(
void
)
{
iotable_init
(
ap4evb_io_desc
,
ARRAY_SIZE
(
ap4evb_io_desc
));
/* DMA memory at 0xf6000000 - 0xffdfffff */
init_consistent_dma_size
(
158
<<
20
);
/* setup early devices and console here as well */
sh7372_add_early_devices
();
...
...
arch/arm/mach-shmobile/board-g3evm.c
浏览文件 @
0cd21ebc
...
...
@@ -32,6 +32,7 @@
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/input/sh_keysc.h>
#include <linux/dma-mapping.h>
#include <mach/sh7367.h>
#include <mach/common.h>
#include <asm/mach-types.h>
...
...
@@ -260,6 +261,8 @@ static struct map_desc g3evm_io_desc[] __initdata = {
static
void
__init
g3evm_map_io
(
void
)
{
iotable_init
(
g3evm_io_desc
,
ARRAY_SIZE
(
g3evm_io_desc
));
/* DMA memory at 0xf6000000 - 0xffdfffff */
init_consistent_dma_size
(
158
<<
20
);
/* setup early devices and console here as well */
sh7367_add_early_devices
();
...
...
arch/arm/mach-shmobile/board-g4evm.c
浏览文件 @
0cd21ebc
...
...
@@ -33,6 +33,7 @@
#include <linux/mmc/host.h>
#include <linux/mmc/sh_mobile_sdhi.h>
#include <linux/gpio.h>
#include <linux/dma-mapping.h>
#include <mach/sh7377.h>
#include <mach/common.h>
#include <asm/mach-types.h>
...
...
@@ -274,6 +275,8 @@ static struct map_desc g4evm_io_desc[] __initdata = {
static
void
__init
g4evm_map_io
(
void
)
{
iotable_init
(
g4evm_io_desc
,
ARRAY_SIZE
(
g4evm_io_desc
));
/* DMA memory at 0xf6000000 - 0xffdfffff */
init_consistent_dma_size
(
158
<<
20
);
/* setup early devices and console here as well */
sh7377_add_early_devices
();
...
...
arch/arm/mach-shmobile/board-mackerel.c
浏览文件 @
0cd21ebc
...
...
@@ -45,6 +45,7 @@
#include <linux/tca6416_keypad.h>
#include <linux/usb/r8a66597.h>
#include <linux/usb/renesas_usbhs.h>
#include <linux/dma-mapping.h>
#include <video/sh_mobile_hdmi.h>
#include <video/sh_mobile_lcdc.h>
...
...
@@ -1377,6 +1378,8 @@ static struct map_desc mackerel_io_desc[] __initdata = {
static
void
__init
mackerel_map_io
(
void
)
{
iotable_init
(
mackerel_io_desc
,
ARRAY_SIZE
(
mackerel_io_desc
));
/* DMA memory at 0xf6000000 - 0xffdfffff */
init_consistent_dma_size
(
158
<<
20
);
/* setup early devices and console here as well */
sh7372_add_early_devices
();
...
...
arch/arm/mach-shmobile/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -4,7 +4,4 @@
#define PLAT_PHYS_OFFSET UL(CONFIG_MEMORY_START)
#define MEM_SIZE UL(CONFIG_MEMORY_SIZE)
/* DMA memory at 0xf6000000 - 0xffdfffff */
#define CONSISTENT_DMA_SIZE (158 << 20)
#endif
/* __ASM_MACH_MEMORY_H */
arch/arm/mach-u300/core.c
浏览文件 @
0cd21ebc
...
...
@@ -25,6 +25,7 @@
#include <linux/err.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/fsmc.h>
#include <linux/dma-mapping.h>
#include <asm/types.h>
#include <asm/setup.h>
...
...
@@ -92,6 +93,8 @@ static struct map_desc u300_io_desc[] __initdata = {
void
__init
u300_map_io
(
void
)
{
iotable_init
(
u300_io_desc
,
ARRAY_SIZE
(
u300_io_desc
));
/* We enable a real big DMA buffer if need be. */
init_consistent_dma_size
(
SZ_4M
);
}
/*
...
...
arch/arm/mach-u300/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -34,9 +34,4 @@
(CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024 + 0x100)
#endif
/*
* We enable a real big DMA buffer if need be.
*/
#define CONSISTENT_DMA_SIZE SZ_4M
#endif
arch/arm/mm/dma-mapping.c
浏览文件 @
0cd21ebc
...
...
@@ -18,12 +18,14 @@
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/highmem.h>
#include <linux/slab.h>
#include <asm/memory.h>
#include <asm/highmem.h>
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
#include <asm/sizes.h>
#include <asm/mach/arch.h>
#include "mm.h"
...
...
@@ -117,26 +119,37 @@ static void __dma_free_buffer(struct page *page, size_t size)
}
#ifdef CONFIG_MMU
/* Sanity check size */
#if (CONSISTENT_DMA_SIZE % SZ_2M)
#error "CONSISTENT_DMA_SIZE must be multiple of 2MiB"
#endif
#define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT)
#define CONSISTENT_
PTE_INDEX(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PGDIR
_SHIFT)
#define
NUM_CONSISTENT_PTES (CONSISTENT_DMA_SIZE
>> PGDIR_SHIFT)
#define CONSISTENT_
OFFSET(x) (((unsigned long)(x) - consistent_base) >> PAGE
_SHIFT)
#define
CONSISTENT_PTE_INDEX(x) (((unsigned long)(x) - consistent_base)
>> PGDIR_SHIFT)
/*
* These are the page tables (2MB each) covering uncached, DMA consistent allocations
*/
static
pte_t
*
consistent_pte
[
NUM_CONSISTENT_PTES
];
static
pte_t
**
consistent_pte
;
#define DEFAULT_CONSISTENT_DMA_SIZE SZ_2M
unsigned
long
consistent_base
=
CONSISTENT_END
-
DEFAULT_CONSISTENT_DMA_SIZE
;
void
__init
init_consistent_dma_size
(
unsigned
long
size
)
{
unsigned
long
base
=
CONSISTENT_END
-
ALIGN
(
size
,
SZ_2M
);
BUG_ON
(
consistent_pte
);
/* Check we're called before DMA region init */
BUG_ON
(
base
<
VMALLOC_END
);
/* Grow region to accommodate specified size */
if
(
base
<
consistent_base
)
consistent_base
=
base
;
}
#include "vmregion.h"
static
struct
arm_vmregion_head
consistent_head
=
{
.
vm_lock
=
__SPIN_LOCK_UNLOCKED
(
&
consistent_head
.
vm_lock
),
.
vm_list
=
LIST_HEAD_INIT
(
consistent_head
.
vm_list
),
.
vm_start
=
CONSISTENT_BASE
,
.
vm_end
=
CONSISTENT_END
,
};
...
...
@@ -155,7 +168,17 @@ static int __init consistent_init(void)
pmd_t
*
pmd
;
pte_t
*
pte
;
int
i
=
0
;
u32
base
=
CONSISTENT_BASE
;
unsigned
long
base
=
consistent_base
;
unsigned
long
num_ptes
=
(
CONSISTENT_END
-
base
)
>>
PGDIR_SHIFT
;
consistent_pte
=
kmalloc
(
num_ptes
*
sizeof
(
pte_t
),
GFP_KERNEL
);
if
(
!
consistent_pte
)
{
pr_err
(
"%s: no memory
\n
"
,
__func__
);
return
-
ENOMEM
;
}
pr_debug
(
"DMA memory: 0x%08lx - 0x%08lx:
\n
"
,
base
,
CONSISTENT_END
);
consistent_head
.
vm_start
=
base
;
do
{
pgd
=
pgd_offset
(
&
init_mm
,
base
);
...
...
@@ -198,7 +221,7 @@ __dma_alloc_remap(struct page *page, size_t size, gfp_t gfp, pgprot_t prot)
size_t
align
;
int
bit
;
if
(
!
consistent_pte
[
0
]
)
{
if
(
!
consistent_pte
)
{
printk
(
KERN_ERR
"%s: not initialised
\n
"
,
__func__
);
dump_stack
();
return
NULL
;
...
...
arch/arm/mm/init.c
浏览文件 @
0cd21ebc
...
...
@@ -653,9 +653,6 @@ void __init mem_init(void)
" ITCM : 0x%08lx - 0x%08lx (%4ld kB)
\n
"
#endif
" fixmap : 0x%08lx - 0x%08lx (%4ld kB)
\n
"
#ifdef CONFIG_MMU
" DMA : 0x%08lx - 0x%08lx (%4ld MB)
\n
"
#endif
" vmalloc : 0x%08lx - 0x%08lx (%4ld MB)
\n
"
" lowmem : 0x%08lx - 0x%08lx (%4ld MB)
\n
"
#ifdef CONFIG_HIGHMEM
...
...
@@ -674,9 +671,6 @@ void __init mem_init(void)
MLK
(
ITCM_OFFSET
,
(
unsigned
long
)
itcm_end
),
#endif
MLK
(
FIXADDR_START
,
FIXADDR_TOP
),
#ifdef CONFIG_MMU
MLM
(
CONSISTENT_BASE
,
CONSISTENT_END
),
#endif
MLM
(
VMALLOC_START
,
VMALLOC_END
),
MLM
(
PAGE_OFFSET
,
(
unsigned
long
)
high_memory
),
#ifdef CONFIG_HIGHMEM
...
...
@@ -699,9 +693,6 @@ void __init mem_init(void)
* be detected at build time already.
*/
#ifdef CONFIG_MMU
BUILD_BUG_ON
(
VMALLOC_END
>
CONSISTENT_BASE
);
BUG_ON
(
VMALLOC_END
>
CONSISTENT_BASE
);
BUILD_BUG_ON
(
TASK_SIZE
>
MODULES_VADDR
);
BUG_ON
(
TASK_SIZE
>
MODULES_VADDR
);
#endif
...
...
arch/arm/plat-mxc/include/mach/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -40,19 +40,4 @@
# endif
#endif
#if defined(CONFIG_MX3_VIDEO)
/*
* Increase size of DMA-consistent memory region.
* This is required for mx3 camera driver to capture at least two QXGA frames.
*/
#define CONSISTENT_DMA_SIZE SZ_8M
#elif defined(CONFIG_MX1_VIDEO) || defined(CONFIG_VIDEO_MX2_HOSTSUPPORT)
/*
* Increase size of DMA-consistent memory region.
* This is required for i.MX camera driver to capture at least four VGA frames.
*/
#define CONSISTENT_DMA_SIZE SZ_4M
#endif
/* CONFIG_MX1_VIDEO || CONFIG_VIDEO_MX2_HOSTSUPPORT */
#endif
/* __ASM_ARCH_MXC_MEMORY_H__ */
arch/arm/plat-omap/include/plat/io.h
浏览文件 @
0cd21ebc
...
...
@@ -309,6 +309,8 @@ extern void omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0,
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
#endif
arch/arm/plat-omap/include/plat/memory.h
浏览文件 @
0cd21ebc
...
...
@@ -85,18 +85,5 @@
#endif
/* CONFIG_ARCH_OMAP15XX */
/* Override the ARM default */
#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
#if (CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE == 0)
#undef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
#define CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE 2
#endif
#define CONSISTENT_DMA_SIZE \
(((CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE + 1) & ~1) * 1024 * 1024)
#endif
#endif
arch/arm/plat-omap/io.c
浏览文件 @
0cd21ebc
...
...
@@ -12,6 +12,7 @@
#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>
...
...
@@ -139,3 +140,10 @@ void omap_iounmap(volatile void __iomem *addr)
__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
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录