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;