Hi,

I'm just ramping back up after being on maternity leave so I'm pretty buried under on the lists.  Please do continue to CC me directly on ION related work.  

On Tue, Jan 17, 2012 at 11:40 PM, Hiroshi Doyu <hdoyu@nvidia.com> wrote:
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 will take a look at your review this code as soon as I can.  The intention is to take contributions like these so keep them coming.  
 

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.

It is my intention to leverage the DMABUF api as much as I can.  I'll be going back over the work on the DMA api over the next few weeks and thinking about how to integrate the two solutions.  
 

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?

I expect this is an oversight that occurred when the android drivers were added back to staging.  It's not intended to be a temporary solution.  That being said, I'm not sure I want to push for it in staging.  I'd rather give it a little more time to bake and then at some post it as a patch set.  
 

It would be nice if we can share some of our effort here since not
small Android users need Ion, even temporary.

Agreed!  Keep sending things my way and I'll get feedback to you as quickly as I can.  
 

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