From: BuddyZhang <buddy.zhang@xxxxxxxxxx> This function could help developer who want to find a special named CMA area. The CMA supports multiple named CMA areas, and the device could use or exclusive a special CAM arae via "cma_area" on "struct device". When probing, the device can setup special CMA area which find by "cma_find_by_name()". If device can't find named CMA area, "cma_find_by_name()" will return NULL, and device will used default CMA area. Signed-off-by: BuddyZhang <buddy.zhang@xxxxxxxxxx> --- mm/cma.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mm/cma.c b/mm/cma.c index be55d1988c67..b562557572c4 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -40,6 +40,18 @@ struct cma cma_areas[MAX_CMA_AREAS]; unsigned cma_area_count; static DEFINE_MUTEX(cma_mutex); +struct cma *cma_find_by_name(const char *name) +{ + int idx; + + for (idx = 0; idx < MAX_CMA_AREAS; idx++) { + if (cma_areas[idx].name && !strcmp(name, cma_areas[idx].name)) + return &cma_areas[idx]; + } + return NULL; +} +EXPORT_SYMBOL(cma_find_by_name) + phys_addr_t cma_get_base(const struct cma *cma) { return PFN_PHYS(cma->base_pfn); -- 2.17.1