libgralloc: Use ION_IOC_CUSTOM instead of MSM-specific ioctls

Use ION_IOC_CUSTOM instead of ION_IOC_CLEAN_INV_CACHES.
ION_IOC_CLEAN_INV_CACHES is now specified as a command argument of the
ION_IOC_CUSTOM ioctl.

Change-Id: I5b59ba1032364dfb884a90abf2ee2b35f3c09dd6
diff --git a/libgralloc/ionalloc.cpp b/libgralloc/ionalloc.cpp
index 8af5a96..edfd96a 100644
--- a/libgralloc/ionalloc.cpp
+++ b/libgralloc/ionalloc.cpp
@@ -225,9 +225,15 @@
     flush_data.vaddr   = base;
     flush_data.offset  = offset;
     flush_data.length  = size;
-    if(ioctl(mIonFd, ION_IOC_CLEAN_INV_CACHES, &flush_data)) {
+
+    struct ion_custom_data d;
+    d.cmd = ION_IOC_CLEAN_INV_CACHES;
+    d.arg = (unsigned long int)&flush_data;
+
+    if(ioctl(mIonFd, ION_IOC_CUSTOM, &d)) {
         err = -errno;
         ALOGE("%s: ION_IOC_CLEAN_INV_CACHES failed with error - %s",
+
               __FUNCTION__, strerror(errno));
         ioctl(mIonFd, ION_IOC_FREE, &handle_data);
         return err;