aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2012-12-01 08:24:52 -0800
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-12-02 06:57:12 -0800
commitec1f2815e968bbdaebfd54b62c5b037cc6621d80 (patch)
treee089aa77ca339b398aac8431fc340adfd4147241
parent91137e19bf815da18f4c0250bcb1c97bb00ef7c7 (diff)
downloadsystem_core-ec1f2815e968bbdaebfd54b62c5b037cc6621d80.tar.gz
system_core-ec1f2815e968bbdaebfd54b62c5b037cc6621d80.tar.bz2
system_core-ec1f2815e968bbdaebfd54b62c5b037cc6621d80.zip
libion: Support for old ION API
* Kernel 3.0 doesn't have heap_mask or SYNC ioctl, so add a board flag so that proprietary code that uses the old kernel API directly still works. Change-Id: I4227c79a5de46c60eeebd2e16ca88dd6d580916a
-rw-r--r--libion/Android.mk3
-rw-r--r--libion/ion.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/libion/Android.mk b/libion/Android.mk
index e2027cba..0f023d66 100644
--- a/libion/Android.mk
+++ b/libion/Android.mk
@@ -3,6 +3,9 @@ ifneq ($(TARGET_BOARD_PLATFORM),omap3)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
+ifeq ($(BOARD_HAVE_OLD_ION_API),true)
+LOCAL_CFLAGS += -DOLD_ION_API
+endif
LOCAL_SRC_FILES := ion.c
LOCAL_MODULE := libion
LOCAL_MODULE_TAGS := optional
diff --git a/libion/ion.c b/libion/ion.c
index 020c35bc..4cd1697c 100644
--- a/libion/ion.c
+++ b/libion/ion.c
@@ -61,7 +61,9 @@ int ion_alloc(int fd, size_t len, size_t align, unsigned int heap_mask,
struct ion_allocation_data data = {
.len = len,
.align = align,
+#ifndef OLD_ION_API
.heap_mask = heap_mask,
+#endif
.flags = flags,
};
@@ -149,8 +151,12 @@ int ion_import(int fd, int share_fd, struct ion_handle **handle)
int ion_sync_fd(int fd, int handle_fd)
{
+#ifdef OLD_ION_API
+ return 0;
+#else
struct ion_fd_data data = {
.fd = handle_fd,
};
return ion_ioctl(fd, ION_IOC_SYNC, &data);
+#endif
}