display: Reconcile display HALs

Make the display HALs compile with/without the Qualcomm BSP
specific features so they can work with pure AOSP.
Change-Id: I1ad7282c4fe1fe7e3309afb530a07735f165ffbe
diff --git a/libgralloc/gpu.cpp b/libgralloc/gpu.cpp
index 291f564..15d7329 100644
--- a/libgralloc/gpu.cpp
+++ b/libgralloc/gpu.cpp
@@ -47,7 +47,9 @@
     common.module  = const_cast<hw_module_t*>(&module->base.common);
     common.close   = gralloc_close;
     alloc          = gralloc_alloc;
+#ifdef QCOM_BSP
     allocSize      = gralloc_alloc_size;
+#endif
     free           = gralloc_free;
 
 }
diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h
index dc755cb..baf137f 100644
--- a/libgralloc/gralloc_priv.h
+++ b/libgralloc/gralloc_priv.h
@@ -84,8 +84,7 @@
 enum {
     /* Gralloc perform enums
     */
-    GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER =
-                                    GRALLOC_MODULE_PERFORM_PRIVATE_START,
+    GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER = 1,
 };
 
 #define GRALLOC_HEAP_MASK   (GRALLOC_USAGE_PRIVATE_UI_CONTIG_HEAP |\
diff --git a/libgralloc/ionalloc.cpp b/libgralloc/ionalloc.cpp
index 8cee7fd..6144f95 100644
--- a/libgralloc/ionalloc.cpp
+++ b/libgralloc/ionalloc.cpp
@@ -40,6 +40,9 @@
 using gralloc::IonAlloc;
 
 #define ION_DEVICE "/dev/ion"
+#ifdef QCOM_BSP
+#define NEW_ION_API
+#endif
 
 int IonAlloc::open_device()
 {
@@ -66,6 +69,10 @@
 {
     Locker::Autolock _l(mLock);
     int err = 0;
+#ifndef NEW_ION_API
+    int ionSyncFd = FD_INIT;
+    int iFd = FD_INIT;
+#endif
     struct ion_handle_data handle_data;
     struct ion_fd_data fd_data;
     struct ion_allocation_data ionAllocData;
@@ -73,9 +80,12 @@
 
     ionAllocData.len = data.size;
     ionAllocData.align = data.align;
+#ifndef NEW_ION_API
+    ionAllocData.flags = data.flags;
+#else
     ionAllocData.heap_mask = data.flags & ~ION_SECURE;
     ionAllocData.flags = data.uncached ? 0 : ION_FLAG_CACHED;
-
+#endif
     // ToDo: replace usage of alloc data structure with
     //  ionallocdata structure.
     if (data.flags & ION_SECURE)
@@ -84,10 +94,32 @@
     err = open_device();
     if (err)
         return err;
+#ifndef NEW_ION_API
+    if(data.uncached) {
+        // Use the sync FD to alloc and map 93
+        // when we need uncached memory 94
+        ionSyncFd = open(ION_DEVICE, O_RDONLY|O_DSYNC);
+        if(ionSyncFd < 0) {
+            ALOGE("%s: Failed to open ion device - %s",
+                  __FUNCTION__, strerror(errno));
+            return -errno;
+        }
+        iFd = ionSyncFd;
+    } else {
+        iFd = mIonFd;
+    }
 
+    if(ioctl(iFd, ION_IOC_ALLOC, &ionAllocData)) {
+#else
     if(ioctl(mIonFd, ION_IOC_ALLOC, &ionAllocData)) {
+#endif
         err = -errno;
         ALOGE("ION_IOC_ALLOC failed with error - %s", strerror(errno));
+#ifndef NEW_ION_API
+        if(ionSyncFd >= 0)
+            close(ionSyncFd);
+        ionSyncFd = FD_INIT;
+#endif
         return err;
     }
 
@@ -203,11 +235,15 @@
     flush_data.offset  = offset;
     flush_data.length  = size;
 
+#ifdef NEW_ION_API
     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)) {
+#else
+    if(ioctl(mIonFd, ION_IOC_CLEAN_INV_CACHES, &flush_data)) {
+#endif
         err = -errno;
         ALOGE("%s: ION_IOC_CLEAN_INV_CACHES failed with error - %s",
 
diff --git a/libgralloc/mapper.cpp b/libgralloc/mapper.cpp
index b3e371a..af536ad 100644
--- a/libgralloc/mapper.cpp
+++ b/libgralloc/mapper.cpp
@@ -353,6 +353,7 @@
                 break;
 
             }
+#ifdef QCOM_BSP
         case GRALLOC_MODULE_PERFORM_UPDATE_BUFFER_GEOMETRY:
             {
                 int width = va_arg(args, int);
@@ -368,6 +369,7 @@
                 res = 0;
             }
             break;
+#endif
         default:
             break;
     }