return ERR_PTR(ret);
}
+#ifdef CONFIG_CMA
+
// struct "cma" quoted from drivers/base/dma-contiguous.c
struct cma {
unsigned long base_pfn;
return 0;
}
+#endif
+
struct ion_client *rockchip_ion_client_create(const char *name)
{
return ion_client_create(idev, name);
err = PTR_ERR(heaps[i]);
goto err;
}
+#ifdef CONFIG_CMA
if (ION_HEAP_TYPE_DMA==heap_data->type)
heaps[i]->debug_show = ion_cma_heap_debug_show;
+#endif
ion_device_add_heap(idev, heaps[i]);
}
platform_set_drvdata(pdev, idev);
int __init rockchip_ion_find_reserve_mem(unsigned long node, const char *uname,
int depth, void *data)
{
+#ifdef CONFIG_CMA
__be32 *prop;
unsigned long len;
phys_addr_t size;
pr_info("%s: reserve cma memory: %x %x\n", __func__, base, size);
dma_declare_contiguous(&rockchip_ion_cma_dev, size, base, 0);
+#endif
return 1;
}