gralloc: Add support for 8-bit RAW MIPI stream

Define new HAL color format for RAW-8 stream and
add support for buffer allocation with RAW-8 format.

Change-Id: I1ee1dbd270d25c27e52c5dd023345c8283c658d2
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp
index 805948b..5d80e6d 100644
--- a/libgralloc/alloc_controller.cpp
+++ b/libgralloc/alloc_controller.cpp
@@ -248,6 +248,9 @@
             case HAL_PIXEL_FORMAT_RAW10:
                 aligned_w = ALIGN(width * 10 / 8, 8);
                 break;
+            case HAL_PIXEL_FORMAT_RAW8:
+                aligned_w = ALIGN(width, 8);
+                break;
             case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
                 aligned_w = ALIGN(width, 128);
                 break;
@@ -556,7 +559,9 @@
         case HAL_PIXEL_FORMAT_RAW10:
             size = ALIGN(alignedw * alignedh, 4096);
             break;
-
+        case HAL_PIXEL_FORMAT_RAW8:
+            size = alignedw * alignedh;
+            break;
             // adreno formats
         case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO:  // NV21
             size  = ALIGN(alignedw*alignedh, 4096);
@@ -794,6 +799,7 @@
         case HAL_PIXEL_FORMAT_NV21_ZSL:
         case HAL_PIXEL_FORMAT_RAW16:
         case HAL_PIXEL_FORMAT_RAW10:
+        case HAL_PIXEL_FORMAT_RAW8:
             getYuvSPPlaneInfo(hnd->base, width, height, 1, ycbcr);
             std::swap(ycbcr->cb, ycbcr->cr);
         break;
diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h
index 5782180..6f42ac2 100644
--- a/libgralloc/gralloc_priv.h
+++ b/libgralloc/gralloc_priv.h
@@ -120,6 +120,7 @@
 #define HAL_PIXEL_FORMAT_YCbCr_420_P010          0x11F
 #define HAL_PIXEL_FORMAT_CbYCrY_422_I            0x120
 #define HAL_PIXEL_FORMAT_BGR_888                 0x121
+#define HAL_PIXEL_FORMAT_RAW8                    0x123
 
 #define HAL_PIXEL_FORMAT_INTERLACE               0x180
 
diff --git a/libgralloc1/gr_allocator.cpp b/libgralloc1/gr_allocator.cpp
index 3c01fbd..142b5d9 100644
--- a/libgralloc1/gr_allocator.cpp
+++ b/libgralloc1/gr_allocator.cpp
@@ -218,6 +218,9 @@
     case HAL_PIXEL_FORMAT_RAW10:
       size = ALIGN(alignedw * alignedh, SIZE_4K);
       break;
+    case HAX_PIXEL_FORMAT_RAW8:
+      size = alignedw * alignedh * 1;
+      break;
 
     // adreno formats
     case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO:  // NV21
@@ -402,6 +405,7 @@
     case HAL_PIXEL_FORMAT_NV21_ZSL:
     case HAL_PIXEL_FORMAT_RAW16:
     case HAL_PIXEL_FORMAT_RAW10:
+    case HAL_PIXEL_FORMAT_RAW8:
       GetYuvSPPlaneInfo(hnd->base, width, height, 1, ycbcr);
       std::swap(ycbcr->cb, ycbcr->cr);
       break;
@@ -777,6 +781,9 @@
     case HAL_PIXEL_FORMAT_RAW10:
       aligned_w = ALIGN(width * 10 / 8, 16);
       break;
+    case HAL_PIXEL_FORMAT_RAW8:
+      aligned_w = ALIGN(width, 8);
+      break;
     case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
       aligned_w = ALIGN(width, 128);
       break;
diff --git a/libgralloc1/gralloc_priv.h b/libgralloc1/gralloc_priv.h
index fa04b1b..7cede19 100644
--- a/libgralloc1/gralloc_priv.h
+++ b/libgralloc1/gralloc_priv.h
@@ -116,6 +116,7 @@
 #define HAL_PIXEL_FORMAT_NV21_ZSL 0x113
 #define HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS 0x114
 #define HAL_PIXEL_FORMAT_BGR_565 0x115
+#define HAX_PIXEL_FORMAT_RAW8 0x116
 
 // 10 bit
 #define HAL_PIXEL_FORMAT_RGBA_1010102 0x116