*参照元 [#n8a2d3ac] #backlinks *説明 [#c18c2916] -パス: [[linux-4.4.1/drivers/base/dma-coherent.c]] -FIXME: これは何? --説明 **引数 [#e50ff405] -struct reserved_mem *rmem -- --[[linux-4.4.1/reserved_mem]] **返り値 [#i53f25b9] -int -- **参考 [#tb16e2b0] *実装 [#i96706df] static int __init rmem_dma_setup(struct reserved_mem *rmem) { unsigned long node = rmem->fdt_node; if (of_get_flat_dt_prop(node, "reusable", NULL)) return -EINVAL; - --[[linux-4.4.1/of_get_flat_dt_prop()]] #ifdef CONFIG_ARM - --[[linux-4.4.1/CONFIG_ARM]] if (!of_get_flat_dt_prop(node, "no-map", NULL)) { pr_err("Reserved memory: regions without no-map are not yet supported\n"); return -EINVAL; } - -ARM の場合は no-map プロパティが存在しないとエラーになる。 -FIXME: aarch64 はなぜ存在しなくて良い?? --[[linux-4.4.1/CONFIG_ARM]] --[[linux-4.4.1/of_get_flat_dt_prop()]] --[[linux-4.4.1/pr_err()]] #endif rmem->ops = &rmem_dma_ops; - --[[linux-4.4.1/rmem_dma_ops(global)]] pr_info("Reserved memory: created DMA memory pool at %pa, size %ld MiB\n", &rmem->base, (unsigned long)rmem->size / SZ_1M); - --[[linux-4.4.1/pr_info()]] return 0; } RESERVEDMEM_OF_DECLARE(dma, "shared-dma-pool", rmem_dma_setup); - --[[linux-4.4.1/RESERVEDMEM_OF_DECLARE()]] --[[linux-4.4.1/__of_table_dma(global)]] *コメント [#j38aa94c]