sdm: Add support for new pixel formats in gralloc1

Add support for BGR_888 and CBYCRY_422_I in gralloc1.  The
new formats will be used by camera application.

CRs-Fixed: 1116491
Change-Id: Iafa240294a1e2956b96f7aa9606326bb5635a2bd
diff --git a/libgralloc1/gr_adreno_info.cpp b/libgralloc1/gr_adreno_info.cpp
index 1d0ed48..ecac238 100644
--- a/libgralloc1/gr_adreno_info.cpp
+++ b/libgralloc1/gr_adreno_info.cpp
@@ -115,6 +115,7 @@
   int bpp = 4;
   switch (format) {
     case HAL_PIXEL_FORMAT_RGB_888:
+    case HAL_PIXEL_FORMAT_BGR_888:
       bpp = 3;
       break;
     case HAL_PIXEL_FORMAT_RGB_565:
diff --git a/libgralloc1/gr_utils.cpp b/libgralloc1/gr_utils.cpp
index 444de8c..28fe4f6 100644
--- a/libgralloc1/gr_utils.cpp
+++ b/libgralloc1/gr_utils.cpp
@@ -64,6 +64,7 @@
     case HAL_PIXEL_FORMAT_BGRX_1010102:
     case HAL_PIXEL_FORMAT_XBGR_2101010:
     case HAL_PIXEL_FORMAT_RGBA_FP16:
+    case HAL_PIXEL_FORMAT_BGR_888:
       return true;
     default:
       break;
@@ -131,6 +132,7 @@
       bpp = 4;
       break;
     case HAL_PIXEL_FORMAT_RGB_888:
+    case HAL_PIXEL_FORMAT_BGR_888:
       bpp = 3;
       break;
     case HAL_PIXEL_FORMAT_RGB_565:
@@ -240,6 +242,7 @@
     case HAL_PIXEL_FORMAT_YCrCb_422_SP:
     case HAL_PIXEL_FORMAT_YCbCr_422_I:
     case HAL_PIXEL_FORMAT_YCrCb_422_I:
+    case HAL_PIXEL_FORMAT_CbYCrY_422_I:
       if (width & 1) {
         ALOGE("width is odd for the YUV422_SP format");
         return 0;
@@ -403,7 +406,16 @@
       ycbcr->cstride = cstride;
       ycbcr->chroma_step = 1;
       break;
-
+    case HAL_PIXEL_FORMAT_CbYCrY_422_I:
+      ystride = width * 2;
+      cstride = 0;
+      ycbcr->y  = reinterpret_cast<void *>(hnd->base);
+      ycbcr->cr = NULL;
+      ycbcr->cb = NULL;
+      ycbcr->ystride = ystride;
+      ycbcr->cstride = 0;
+      ycbcr->chroma_step = 0;
+      break;
       // Unsupported formats
     case HAL_PIXEL_FORMAT_YCbCr_422_I:
     case HAL_PIXEL_FORMAT_YCrCb_422_I:
diff --git a/libgralloc1/gralloc_priv.h b/libgralloc1/gralloc_priv.h
index ea2d57c..ba156b6 100644
--- a/libgralloc1/gralloc_priv.h
+++ b/libgralloc1/gralloc_priv.h
@@ -129,6 +129,9 @@
 #define HAL_PIXEL_FORMAT_YCbCr_420_P010 0x11F
 #define HAL_PIXEL_FORMAT_YCbCr_420_P010_UBWC 0x124
 
+#define HAL_PIXEL_FORMAT_CbYCrY_422_I            0x120
+#define HAL_PIXEL_FORMAT_BGR_888                 0x121
+
 #define HAL_PIXEL_FORMAT_INTERLACE 0x180
 
 // v4l2_fourcc('Y', 'U', 'Y', 'L'). 24 bpp YUYV 4:2:2 10 bit per component