diff --git a/camera/device/3.2/default/Android.bp b/camera/device/3.2/default/Android.bp
index 5a81d41..e0dc5ff 100644
--- a/camera/device/3.2/default/Android.bp
+++ b/camera/device/3.2/default/Android.bp
@@ -17,8 +17,7 @@
         "libcamera_metadata"
     ],
     static_libs: [
-        "android.hardware.camera.common@1.0-helper",
-        "libgrallocusage"
+        "android.hardware.camera.common@1.0-helper"
     ],
     export_include_dirs: ["."]
 }
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index f2f9e5e..5b3024b 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -611,7 +611,7 @@
                 return Void();
             }
             mStreamMap[id].rotation = (int) requestedConfiguration.streams[i].rotation;
-            mStreamMap[id].usage = convertFromHidlUsage(requestedConfiguration.streams[i].usage);
+            mStreamMap[id].usage = (uint32_t) requestedConfiguration.streams[i].usage;
         }
         streams[i] = &mStreamMap[id];
     }
diff --git a/camera/device/3.2/default/convert.cpp b/camera/device/3.2/default/convert.cpp
index c99d903..35676df 100644
--- a/camera/device/3.2/default/convert.cpp
+++ b/camera/device/3.2/default/convert.cpp
@@ -15,12 +15,8 @@
  */
 
 #define LOG_TAG "android.hardware.camera.device@3.2-convert-impl"
-#include <inttypes.h>
-
 #include <android/log.h>
 
-#include <grallocusage/GrallocUsageConversion.h>
-
 #include "include/convert.h"
 
 namespace android {
@@ -32,7 +28,6 @@
 
 using ::android::hardware::graphics::common::V1_0::Dataspace;
 using ::android::hardware::graphics::common::V1_0::PixelFormat;
-using ::android::hardware::graphics::allocator::V2_0::ConsumerUsage;
 using ::android::hardware::camera::device::V3_2::ConsumerUsageFlags;
 using ::android::hardware::camera::device::V3_2::ProducerUsageFlags;
 
@@ -71,37 +66,23 @@
     dst->format = (int) src.format;
     dst->data_space = (android_dataspace_t) src.dataSpace;
     dst->rotation = (int) src.rotation;
-    dst->usage = convertFromHidlUsage(src.usage);
+    dst->usage = (uint32_t) src.usage;
     // Fields to be filled by HAL (max_buffers, priv) are initialized to 0
     dst->max_buffers = 0;
     dst->priv = 0;
     return;
 }
 
-uint32_t convertFromHidlUsage(ConsumerUsageFlags usage) {
-    uint32_t dstUsage = 0;
-    dstUsage = ::android_convertGralloc1To0Usage(/*producerUsage*/ 0, usage);
-    // Compatibility workaround - add HW_CAMERA_ZSL when ConsumerUsage.CAMERA is set, to
-    // match pre-HIDL expected usage flags
-    if ( (usage & ConsumerUsage::CAMERA) == static_cast<uint64_t>(ConsumerUsage::CAMERA)) {
-        dstUsage |= GRALLOC_USAGE_HW_CAMERA_ZSL;
-    }
-    return dstUsage;
-}
-
 void convertToHidl(const Camera3Stream* src, HalStream* dst) {
     dst->id = src->mId;
     dst->overrideFormat = (PixelFormat) src->format;
     dst->maxBuffers = src->max_buffers;
-    ConsumerUsageFlags consumerUsage;
-    ProducerUsageFlags producerUsage;
-    ::android_convertGralloc0To1Usage(src->usage, &producerUsage, &consumerUsage);
     if (src->stream_type == CAMERA3_STREAM_OUTPUT) {
         dst->consumerUsage = (ConsumerUsageFlags) 0;
-        dst->producerUsage = producerUsage;
+        dst->producerUsage = (ProducerUsageFlags) src->usage;
     } else if (src->stream_type == CAMERA3_STREAM_INPUT) {
         dst->producerUsage = (ProducerUsageFlags) 0;
-        dst->consumerUsage = consumerUsage;
+        dst->consumerUsage = (ConsumerUsageFlags) src->usage;
     } else {
         //Should not reach here per current HIDL spec, but we might end up adding
         // bi-directional stream to HIDL.
diff --git a/camera/device/3.2/default/include/convert.h b/camera/device/3.2/default/include/convert.h
index 7c8e02f..96891f0 100644
--- a/camera/device/3.2/default/include/convert.h
+++ b/camera/device/3.2/default/include/convert.h
@@ -45,8 +45,6 @@
 void convertFromHidl(const Stream &src, Camera3Stream* dst);
 void convertToHidl(const Camera3Stream* src, HalStream* dst);
 
-uint32_t convertFromHidlUsage(ConsumerUsageFlags usage);
-
 void convertFromHidl(
         buffer_handle_t*, BufferStatus, camera3_stream_t*, int acquireFence, // inputs
         camera3_stream_buffer_t* dst);
