Add formats R8, RG88, GR88

It's follow-up patch of libdrm patch https://lists.freedesktop.org/archives/dri-devel/2015-July/086041.html
i915 allows R8 and GR88 because Mesa supports R8 and GR88 dma_bufs. https://lists.freedesktop.org/archives/mesa-commit/2015-July/057676.html
It's need to enable zero-copy video playback.

BUG=chromium:356871
TEST=AMD64/HSW,BDW,SKL

Change-Id: I9c822f882f4a8e448ebca68b24c7fbd7bf86155a
Reviewed-on: https://chromium-review.googlesource.com/337730
Commit-Ready: Stéphane Marchesin <marcheu@chromium.org>
Tested-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
diff --git a/gbm.h b/gbm.h
index 9992db3..91b021a 100644
--- a/gbm.h
+++ b/gbm.h
@@ -84,6 +84,13 @@
 /* color index */
 #define GBM_FORMAT_C8		__gbm_fourcc_code('C', '8', ' ', ' ') /* [7:0] C */
 
+/* 8 bpp Red */
+#define GBM_FORMAT_R8		__gbm_fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
+
+/* 16 bpp RG */
+#define GBM_FORMAT_RG88		__gbm_fourcc_code('R', 'G', '8', '8') /* [15:0] R:G 8:8 little endian */
+#define GBM_FORMAT_GR88		__gbm_fourcc_code('G', 'R', '8', '8') /* [15:0] G:R 8:8 little endian */
+
 /* 8 bpp RGB */
 #define GBM_FORMAT_RGB332	__gbm_fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */
 #define GBM_FORMAT_BGR233	__gbm_fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */
diff --git a/gbm_priv.h b/gbm_priv.h
index 1879704..5aaada1 100644
--- a/gbm_priv.h
+++ b/gbm_priv.h
@@ -53,7 +53,7 @@
 		uint32_t format;
 		enum gbm_bo_flags usage;
 	}
-	format_list[16];
+	format_list[18];
 };
 
 #endif
diff --git a/helpers.c b/helpers.c
index 1ad10ce..bd00de9 100644
--- a/helpers.c
+++ b/helpers.c
@@ -25,6 +25,9 @@
 	switch(format)
 	{
 		case GBM_FORMAT_C8:
+		case GBM_FORMAT_R8:
+		case GBM_FORMAT_RG88:
+		case GBM_FORMAT_GR88:
 		case GBM_FORMAT_RGB332:
 		case GBM_FORMAT_BGR233:
 		case GBM_FORMAT_XRGB4444:
@@ -87,6 +90,7 @@
 	switch(format)
 	{
 		case GBM_FORMAT_C8:
+		case GBM_FORMAT_R8:
 		case GBM_FORMAT_RGB332:
 		case GBM_FORMAT_BGR233:
 			return 8;
@@ -94,6 +98,8 @@
 		case GBM_FORMAT_NV12:
 			return 12;
 
+		case GBM_FORMAT_RG88:
+		case GBM_FORMAT_GR88:
 		case GBM_FORMAT_XRGB4444:
 		case GBM_FORMAT_XBGR4444:
 		case GBM_FORMAT_RGBX4444:
diff --git a/i915.c b/i915.c
index c152b0c..e8e9388 100644
--- a/i915.c
+++ b/i915.c
@@ -205,6 +205,8 @@
 		{GBM_FORMAT_UYVY,     GBM_BO_USE_SCANOUT | GBM_BO_USE_WRITE | GBM_BO_USE_LINEAR},
 		{GBM_FORMAT_YUYV,     GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING | GBM_BO_USE_WRITE},
 		{GBM_FORMAT_YUYV,     GBM_BO_USE_SCANOUT | GBM_BO_USE_WRITE | GBM_BO_USE_LINEAR},
+		{GBM_FORMAT_R8,       GBM_BO_USE_RENDERING | GBM_BO_USE_LINEAR},
+		{GBM_FORMAT_GR88,     GBM_BO_USE_RENDERING | GBM_BO_USE_LINEAR},
 	}
 };