Few days ago, I completely stripped out the dev/ion references from the camera code and was starting to work through a rewrite using our version of the memory tiler built into the kernel (read as TI memmgr1.0) Basically, that caused a little instability in the system which you can see in Alpha #4. Also, it hung the media_audio service out on the boot up which is why it's taking so long to boot currently.
Today, I reverted all of those changes, and instead built a ion_driver kernel module. The /dev/ion device is the new ICS interface for Android to work with the memory tiler at the kernel level. The module included an update to the tiler / dmm driver source as well (i named them tiler2 and tiler2_dmm) and all of the ion driver calls are directed to tiler2 instead of the original.
If loaded on system boot, tiler2_dmm.ko, and tiler2.ko modules load fine.
But, I'm working through some missing references on the ion_driver.ko module.
I'll know more in a day or so as I debug it, as to whether this technique will work.
Worst case is, I'll have to re-write the tiler2 portion as a wrapper of our existing tiler instead of a whole new device as it is now.
TL;DR: Camera needs the /dev/ion device (as does a few codecs) I'm working on a kernel module solution at the moment which has some bugs.