minigbm: mediatek: Conditionally resolve DRM_FORMAT_BGR888 to DRM_FORMAT_XBGR8888

Since the original DRM_FORMAT_BGR888 format did not support
BO_USE_RENDERING or BO_USE_TEXTURE flag and Chromium doesn't
support 24-bit RGB format, resolve the DRM_FORMAT_BGR888
to DRM_FORMAT_XBGR8888 to solve the problem.

BUG=b:191096118
TEST=deploy vendor image and open "My Talking Tom 2" app

Signed-off-by: Nick Fan <Nick.Fan@mediatek.com>
Change-Id: Ibfc76b3790045731c95f1cd387e67ecc5d775e0b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2976161
Reviewed-by: Nick Fan <nick.fan@mediatek.corp-partner.google.com>
Reviewed-by: Fei Shao <fshao@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Nick Fan <nick.fan@mediatek.corp-partner.google.com>
Commit-Queue: Fei Shao <fshao@chromium.org>
diff --git a/mediatek.c b/mediatek.c
index de492e2..ab79798 100644
--- a/mediatek.c
+++ b/mediatek.c
@@ -286,6 +286,13 @@
 			return DRM_FORMAT_NV12;
 		}
 		return DRM_FORMAT_YVU420;
+	case DRM_FORMAT_BGR888:
+		if(use_flags & (BO_USE_RENDERING | BO_USE_TEXTURE)) {
+			/* Some Android app required these flags for DRM_FORMAT_BGR888
+			 * and Chrome does not support DRM_FORMAT_BGR888, so remap the
+			 * DRM_FORMAT_BGR888 to DRM_FORMAT_XBGR8888 to solve this issue*/
+			return DRM_FORMAT_XBGR8888;
+		}
 	default:
 		return format;
 	}