Revert "Revert "Gralloc: Disable AHardwareBuffer""

This reverts commit 57d535691169a0917de3b6b9d5c042b7f786438f.

Reason for revert: Unblock Night Sight
Bug: 118982104

Change-Id: I693fa1b24bcaf28105508df37f87ab717339fcfe
(cherry picked from commit 0424756e358fd1e660fd0142a451127fc75933ec)
diff --git a/gralloc/gr_adreno_info.cpp b/gralloc/gr_adreno_info.cpp
index acc2134..7943132 100644
--- a/gralloc/gr_adreno_info.cpp
+++ b/gralloc/gr_adreno_info.cpp
@@ -87,6 +87,11 @@
     gfx_ubwc_disable_ = true;
   }
 
+  property_get(ENABLE_AHARDWAREBUFFER_PROP, property, "0");
+  if (!(strncmp(property, "1", PROPERTY_VALUE_MAX)) ||
+      !(strncmp(property, "true", PROPERTY_VALUE_MAX))) {
+    gfx_ahardware_buffer_enable_ = true;
+  }
 }
 
 AdrenoMemInfo::~AdrenoMemInfo() {
@@ -262,6 +267,10 @@
 }
 
 bool AdrenoMemInfo::AdrenoSizeAPIAvaliable() {
+  if (!gfx_ahardware_buffer_enable_) {
+    return false;
+  }
+
   return (LINK_adreno_get_metadata_blob_size && LINK_adreno_init_memory_layout &&
           LINK_adreno_get_aligned_gpu_buffer_size);
 }
diff --git a/gralloc/gr_adreno_info.h b/gralloc/gr_adreno_info.h
index eec7da4..88d09d5 100644
--- a/gralloc/gr_adreno_info.h
+++ b/gralloc/gr_adreno_info.h
@@ -187,6 +187,7 @@
   uint32_t (*LINK_adreno_get_aligned_gpu_buffer_size)(void* metadata_blob) = NULL;
 
   bool gfx_ubwc_disable_ = false;
+  bool gfx_ahardware_buffer_enable_ = false;
   void *libadreno_utils_ = NULL;
 
   static AdrenoMemInfo *s_instance;
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index 48d8bb5..e0c97b7 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -226,6 +226,11 @@
   int height = info.height;
   uint64_t usage = info.usage;
 
+  if ((usage & BufferUsage::GPU_MIPMAP_COMPLETE) || (usage & BufferUsage::GPU_CUBE_MAP)) {
+    ALOGE("Invalid GPU usage flags present 0x%" PRIx64, usage);
+    return 0;
+  }
+
   if (IsUBwcEnabled(format, usage)) {
     size = GetUBwcSize(width, height, format, alignedw, alignedh);
   } else if (IsUncompressedRGBFormat(format)) {
diff --git a/gralloc/gralloc_priv.h b/gralloc/gralloc_priv.h
index be53d8b..2cc236a 100644
--- a/gralloc/gralloc_priv.h
+++ b/gralloc/gralloc_priv.h
@@ -28,6 +28,7 @@
 #define GRALLOC_PROP(prop_name) GRALLOC_PROP_PREFIX prop_name
 
 #define DISABLE_UBWC_PROP                    GRALLOC_PROP("disable_ubwc")
+#define ENABLE_AHARDWAREBUFFER_PROP          GRALLOC_PROP("enable_ahardware_buffer")
 #define ENABLE_FB_UBWC_PROP                  GRALLOC_PROP("enable_fb_ubwc")
 #define MAP_FB_MEMORY_PROP                   GRALLOC_PROP("map_fb_memory")