linux-4.4.1/rmem_cma_setup()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#if9a466b]
#backlinks
*説明 [#g0f618d3]
-パス: [[linux-4.4.1/drivers/base/dma-contiguous.c]]
-FIXME: これは何?
--説明
**引数 [#u39d0b9c]
-struct reserved_mem *rmem
--
--[[linux-4.4.1/reserved_mem]]
**返り値 [#v1bbe5d7]
-int
--
**参考 [#v9fe5625]
*実装 [#ddb5468e]
static int __init rmem_cma_setup(struct reserved_mem *rm...
{
phys_addr_t align = PAGE_SIZE << max(MAX_ORDER -...
phys_addr_t mask = align - 1;
unsigned long node = rmem->fdt_node;
struct cma *cma;
int err;
-
--[[linux-4.4.1/phys_addr_t]]
--[[linux-4.4.1/PAGE_SIZE]]
--[[linux-4.4.1/max()]]
--[[linux-4.4.1/MAX_ORDER]]
--[[linux-4.4.1/pageblock_order(global)]]
--[[linux-4.4.1/cma]]
if (!of_get_flat_dt_prop(node, "reusable", NULL)...
of_get_flat_dt_prop(node, "no-map", NULL))
return -EINVAL;
-必ず reusable プロパティを持っている必要がある。
-また no-map プロパティを持っていてはならない。
--[[linux-4.4.1/of_get_flat_dt_prop()]]
if ((rmem->base & mask) || (rmem->size & mask)) {
pr_err("Reserved memory: incorrect align...
return -EINVAL;
}
-
--[[linux-4.4.1/pr_err()]]
err = cma_init_reserved_mem(rmem->base, rmem->si...
if (err) {
pr_err("Reserved memory: unable to setup...
return err;
}
/* Architecture specific contiguous memory fixup...
dma_contiguous_early_fixup(rmem->base, rmem->siz...
-
--[[linux-4.4.1/cma_init_reserved_mem()]]
--[[linux-4.4.1/dma_contiguous_early_fixup()]]
if (of_get_flat_dt_prop(node, "linux,cma-default...
dma_contiguous_set_default(cma);
-
--[[linux-4.4.1/dma_contiguous_set_default()]]
rmem->ops = &rmem_cma_ops;
rmem->priv = cma;
-
--[[linux-4.4.1/rmem_cma_ops(global)]]
pr_info("Reserved memory: created CMA memory poo...
&rmem->base, (unsigned long)rmem->size /...
-
--[[linux-4.4.1/pr_info()]]
--[[linux-4.4.1/SZ_1M]]
return 0;
}
RESERVEDMEM_OF_DECLARE(cma, "shared-dma-pool", rmem_cma_...
-デバイスツリーの compatible プロパティが compatible = "s...
--[[linux-4.4.1/RESERVEDMEM_OF_DECLARE()]]
--[[linux-4.4.1/__of_table_cma(global)]]
*コメント [#r843592f]
終了行:
*参照元 [#if9a466b]
#backlinks
*説明 [#g0f618d3]
-パス: [[linux-4.4.1/drivers/base/dma-contiguous.c]]
-FIXME: これは何?
--説明
**引数 [#u39d0b9c]
-struct reserved_mem *rmem
--
--[[linux-4.4.1/reserved_mem]]
**返り値 [#v1bbe5d7]
-int
--
**参考 [#v9fe5625]
*実装 [#ddb5468e]
static int __init rmem_cma_setup(struct reserved_mem *rm...
{
phys_addr_t align = PAGE_SIZE << max(MAX_ORDER -...
phys_addr_t mask = align - 1;
unsigned long node = rmem->fdt_node;
struct cma *cma;
int err;
-
--[[linux-4.4.1/phys_addr_t]]
--[[linux-4.4.1/PAGE_SIZE]]
--[[linux-4.4.1/max()]]
--[[linux-4.4.1/MAX_ORDER]]
--[[linux-4.4.1/pageblock_order(global)]]
--[[linux-4.4.1/cma]]
if (!of_get_flat_dt_prop(node, "reusable", NULL)...
of_get_flat_dt_prop(node, "no-map", NULL))
return -EINVAL;
-必ず reusable プロパティを持っている必要がある。
-また no-map プロパティを持っていてはならない。
--[[linux-4.4.1/of_get_flat_dt_prop()]]
if ((rmem->base & mask) || (rmem->size & mask)) {
pr_err("Reserved memory: incorrect align...
return -EINVAL;
}
-
--[[linux-4.4.1/pr_err()]]
err = cma_init_reserved_mem(rmem->base, rmem->si...
if (err) {
pr_err("Reserved memory: unable to setup...
return err;
}
/* Architecture specific contiguous memory fixup...
dma_contiguous_early_fixup(rmem->base, rmem->siz...
-
--[[linux-4.4.1/cma_init_reserved_mem()]]
--[[linux-4.4.1/dma_contiguous_early_fixup()]]
if (of_get_flat_dt_prop(node, "linux,cma-default...
dma_contiguous_set_default(cma);
-
--[[linux-4.4.1/dma_contiguous_set_default()]]
rmem->ops = &rmem_cma_ops;
rmem->priv = cma;
-
--[[linux-4.4.1/rmem_cma_ops(global)]]
pr_info("Reserved memory: created CMA memory poo...
&rmem->base, (unsigned long)rmem->size /...
-
--[[linux-4.4.1/pr_info()]]
--[[linux-4.4.1/SZ_1M]]
return 0;
}
RESERVEDMEM_OF_DECLARE(cma, "shared-dma-pool", rmem_cma_...
-デバイスツリーの compatible プロパティが compatible = "s...
--[[linux-4.4.1/RESERVEDMEM_OF_DECLARE()]]
--[[linux-4.4.1/__of_table_cma(global)]]
*コメント [#r843592f]
ページ名: