Hi,
Hi,
Recently we've implemented IOMMU heap as an attachment which is one of
the ION memory manager(*1) heap/backend. This implementation is
completely independent of any SoC, and this can be used for other SoC
as well. If our implementation is not totally wrong, it would be nice
to share some experience/code here since Ion is still not so clear to
me yet.
I found that Linaro also seems to have started some ION work(*2). I
think that some of Ion feature could be supported/replaced with Linaro
UMM. For example, presently "ion_iommu_heap" is implemented with the
standard IOMMU API, but it could be also implemented with the coming
DMA API? Also DMABUF can be used in Ion core part as well, I guess.
Currently there's no Ion memmgr code in the upstream
"drivers/staging/android"(*3). Is there any plan to support this? Or
is this something considered as a completely _temporary_ solution, and
never going to be added?
It would be nice if we can share some of our effort here since not
small Android users need Ion, even temporary.
Any comment would be really appreciated.
Hiroshi DOYU
*1: https://android.googlesource.com/kernel/common.git
$ git clone https://android.googlesource.com/kernel/common.git
$ cd common
$ git checkout -b android origin/android-3.0
$ git grep -e "<linux/ion.h>" drivers/
drivers/gpu/ion/ion.c:#include <linux/ion.h>
drivers/gpu/ion/ion_carveout_heap.c:#include <linux/ion.h>
drivers/gpu/ion/ion_heap.c:#include <linux/ion.h>
drivers/gpu/ion/ion_priv.h:#include <linux/ion.h>
drivers/gpu/ion/ion_system_heap.c:#include <linux/ion.h>
drivers/gpu/ion/ion_system_mapper.c:#include <linux/ion.h>
drivers/gpu/ion/tegra/tegra_ion.c:#include <linux/ion.h>
*2: https://blueprints.launchpad.net/linaro-mm-sig/+spec/linaro-mmwg-cma-ion
*3: http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=tree;f=drivers/staging/android;h=4a70996505b423f12e2ea61d0aad3d9b0cc7a5c0;hb=HEAD