TODO:
	- checkpatch.pl cleanups
	- sparse fixes
	- rename files to be not so "generic"
	- add proper arch dependencies as needed
	- audit userspace interfaces to make sure they are sane


ion/
 - Remove ION_IOC_SYNC: Flushing for devices should be purely a kernel internal
   interface on top of dma-buf. flush_for_device needs to be added to dma-buf
   first.
 - Remove ION_IOC_CUSTOM: Atm used for cache flushing for cpu access in some
   vendor trees. Should be replaced with an ioctl on the dma-buf to expose the
   begin/end_cpu_access hooks to userspace.
 - Clarify the tricks ion plays with explicitly managing coherency behind the
   dma api's back (this is absolutely needed for high-perf gpu drivers): Add an
   explicit coherency management mode to flush_for_device to be used by drivers
   which want to manage caches themselves and which indicates whether cpu caches
   need flushing.
 - With those removed there's probably no use for ION_IOC_IMPORT anymore either
   since ion would just be the central allocator for shared buffers.
 - Add dt-binding to expose cma regions as ion heaps, with the rule that any
   such cma regions must already be used by some device for dma. I.e. ion only
   exposes existing cma regions and doesn't reserve unecessarily memory when
   booting a system which doesn't use ion.

sync framework:
 - remove CONFIG_SW_SYNC_USER, it is used only for testing/debugging and
 should not be upstreamed.
 - port CONFIG_SW_SYNC_USER tests interfaces to use debugfs somehow
 - port libsync tests to kselftest
 - clean up and ABI check for security issues
 - move it to drivers/base/dma-buf

Please send patches to Greg Kroah-Hartman <greg@kroah.com> and Cc:
Arve Hjønnevåg <arve@android.com> and Riley Andrews <riandrews@android.com>
