diff --git a/libgralloc/gpu.cpp b/libgralloc/gpu.cpp
index a0d7d8d..d595a5b 100644
--- a/libgralloc/gpu.cpp
+++ b/libgralloc/gpu.cpp
@@ -95,31 +95,11 @@
         if (usage & GRALLOC_USAGE_PRIVATE_EXTERNAL_ONLY) {
             flags |= private_handle_t::PRIV_FLAGS_EXTERNAL_ONLY;
         }
+
         if (usage & GRALLOC_USAGE_PRIVATE_INTERNAL_ONLY) {
             flags |= private_handle_t::PRIV_FLAGS_INTERNAL_ONLY;
         }
 
-        ColorSpace_t colorSpace = ITU_R_601;
-        flags |= private_handle_t::PRIV_FLAGS_ITU_R_601;
-        if (bufferType == BUFFER_TYPE_VIDEO) {
-            if (usage & GRALLOC_USAGE_HW_CAMERA_WRITE) {
-                // Per the camera spec ITU 709 format should be set only for
-                // video encoding.
-                // It should be set to ITU 601 full range format for any other
-                // camera buffer
-                //
-                if (usage & GRALLOC_USAGE_HW_CAMERA_MASK) {
-                    if (usage & GRALLOC_USAGE_HW_VIDEO_ENCODER) {
-                        flags |= private_handle_t::PRIV_FLAGS_ITU_R_709;
-                        colorSpace = ITU_R_709;
-                    } else {
-                        flags |= private_handle_t::PRIV_FLAGS_ITU_R_601_FR;
-                        colorSpace = ITU_R_601_FR;
-                    }
-                }
-            }
-        }
-
         if (usage & GRALLOC_USAGE_HW_VIDEO_ENCODER ) {
             flags |= private_handle_t::PRIV_FLAGS_VIDEO_ENCODER;
         }
@@ -176,6 +156,7 @@
         hnd->offset = data.offset;
         hnd->base = (uint64_t)(data.base) + data.offset;
         hnd->gpuaddr = 0;
+        ColorSpace_t colorSpace = ITU_R_601;
         setMetaData(hnd, UPDATE_COLOR_SPACE, (void*) &colorSpace);
 
         *pHandle = hnd;
diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h
index 1370eac..38a6235 100644
--- a/libgralloc/gralloc_priv.h
+++ b/libgralloc/gralloc_priv.h
@@ -193,9 +193,9 @@
             PRIV_FLAGS_CAMERA_READ        = 0x00040000,
             PRIV_FLAGS_HW_COMPOSER        = 0x00080000,
             PRIV_FLAGS_HW_TEXTURE         = 0x00100000,
-            PRIV_FLAGS_ITU_R_601          = 0x00200000,
-            PRIV_FLAGS_ITU_R_601_FR       = 0x00400000,
-            PRIV_FLAGS_ITU_R_709          = 0x00800000,
+            PRIV_FLAGS_ITU_R_601          = 0x00200000, //Unused from display
+            PRIV_FLAGS_ITU_R_601_FR       = 0x00400000, //Unused from display
+            PRIV_FLAGS_ITU_R_709          = 0x00800000, //Unused from display
             PRIV_FLAGS_SECURE_DISPLAY     = 0x01000000,
             // Buffer is rendered in Tile Format
             PRIV_FLAGS_TILE_RENDERED      = 0x02000000,
