[Linaro-mm-sig] [PATCH v9 0/3] Add CMA heap for ION memory manager

Benjamin Gaignard benjamin.gaignard at linaro.org
Wed Mar 20 17:33:32 UTC 2013

The goal of those patches is to allow ION clients (drivers or userland applications)
to use Contiguous Memory Allocator (CMA).

To get more info about CMA:

patches version 9:
 - rebased on Android kernel
 - make cma heap able to support ION_FLAG_CACHED flag

patches version 8:
 - fix memory leak when release sg_table
 - remove virt_to_phys from ion_cma_phys

patches version 7:
 - rebased on Android kernel
 - fix ion Makefile
 - add ion_cma_map_kernel function
 - remove CONFIG_CMA compilation flags from ion_heap.c

patches version 6:
 - add private field in ion_platform_heap to pass the device
   linked with CMA.
 - rework CMA heap to use private field.
 - prepare CMA heap for incoming dma_common_get_sgtable function
 - simplify ion-ux500 driver.

patches version 5:
 - port patches on android kernel 3.4 where ION use dmabuf
 - add ion_cma_heap_map_dma and ion_cma_heap_unmap_dma functions

patches version 4:
 - add ION_HEAP_TYPE_DMA heap type in ion_heap_type enum.
 - CMA heap is now a "native" ION heap.
 - add ion_heap_create_full function to keep backward compatibilty.
 - clean up included files in CMA heap
 - ux500-ion is using ion_heap_create_full instead of ion_heap_create

patches version 3:
 - add a private field in ion_heap structure instead of expose ion_device
 structure to all heaps
 - ion_cma_heap is no more a platform driver
 - ion_cma_heap use ion_heap private field to store the device pointer and
   make the link with reserved CMA regions
 - provide ux500-ion driver and configuration file for snowball board to give
   an example of how use CMA heaps

patches version 2:
 - fix comments done by Andy Green

Benjamin Gaignard (3):
  gpu: ion: fix ion_platform_data definition
  gpu: ion: add private field in ion_heap and ion_platform_heap
  gpu: ion: add CMA heap

 drivers/gpu/ion/Makefile       |    1 +
 drivers/gpu/ion/ion_cma_heap.c |  221 ++++++++++++++++++++++++++++++++++++++++
 drivers/gpu/ion/ion_heap.c     |    7 ++
 drivers/gpu/ion/ion_priv.h     |   16 +++
 include/linux/ion.h            |    5 +-
 5 files changed, 249 insertions(+), 1 deletion(-)
 create mode 100644 drivers/gpu/ion/ion_cma_heap.c


More information about the Linaro-mm-sig mailing list