gralloc: Add option for unaligned NV21_ZSL pixel format

* Not sure why this is a thing but on some devices
  (eg. Samsung Galaxy Tab S5e) aligning NV21_ZSL to
  64 results in invalid width and height.

Change-Id: I8611752798a8c66ba55d52d826aa532fd76abe33
diff --git a/gralloc/Android.mk b/gralloc/Android.mk
index 4dffade..c3f4133 100644
--- a/gralloc/Android.mk
+++ b/gralloc/Android.mk
@@ -46,6 +46,10 @@
     LOCAL_CFLAGS              += -DUSE_YCRCB_CAMERA_PREVIEW_VENUS
 endif
 
+ifeq ($(TARGET_USES_UNALIGNED_NV21_ZSL),true)
+    LOCAL_CFLAGS              += -DUSE_UNALIGNED_NV21_ZSL
+endif
+
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
 LOCAL_SRC_FILES               := gr_utils.cpp gr_adreno_info.cpp
 include $(BUILD_SHARED_LIBRARY)
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index 2050834..d157ad6 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -1064,8 +1064,10 @@
     case HAL_PIXEL_FORMAT_RAW_OPAQUE:
       break;
     case HAL_PIXEL_FORMAT_NV21_ZSL:
+#ifndef USE_UNALIGNED_NV21_ZSL
       aligned_w = ALIGN(width, 64);
       aligned_h = ALIGN(height, 64);
+#endif
       break;
     case HAL_PIXEL_FORMAT_NV12_HEIF:
       aligned_w = INT(VENUS_Y_STRIDE(COLOR_FMT_NV12_512, width));