From a91c588b5a4122506e7fe949c37d530621bdd997 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org>
Date: Tue, 11 Jul 2017 14:50:37 -0500
Subject: [PATCH] Detect gst_bo_map/_unmap and use it (or avoid it)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Those functions are not available on libMali, thus breaking
builds and creating havoc.

Removing the specific parts of the code that deal with
gbm_bo_map() and gbm_bo_unmap() renders the kmscube utility
a little less useful, but still valuable.

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Cc: Rob Clark <robdclark@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>

Upstream-Status: Submitted [https://lists.freedesktop.org/archives/mesa-dev/2017-July/163020.html]
Signed-off-by: Zoltan Kuscsik <zoltan.kuscsik@solution57.com>
---
 Makefile.am   | 5 ++++-
 configure.ac  | 3 +++
 gst-decoder.c | 7 ++++++-
 kmscube.c     | 4 ++++
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index ba064e4..3a0a50b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -43,7 +43,6 @@ kmscube_SOURCES = \
 	common.c \
 	common.h \
 	cube-smooth.c \
-	cube-tex.c \
 	drm-atomic.c \
 	drm-common.c \
 	drm-common.h \
@@ -68,3 +67,7 @@ texturator_SOURCES = \
 	drm-common.c \
 	drm-legacy.c \
 	texturator.c
+
+if ENABLE_GBM_MAP
+kmscube_SOURCES += cube-tex.c
+endif
diff --git a/configure.ac b/configure.ac
index 6be6541..3d20121 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,5 +49,8 @@ if test "x$HAVE_GST" = "xyes"; then
 fi
 AM_CONDITIONAL(ENABLE_GST, [test "x$HAVE_GST" = "xyes"])
 
+AC_CHECK_LIB([gbm], [gbm_bo_map], [HAVE_GBM_BO_MAP=yes], [])
+AM_CONDITIONAL(ENABLE_GBM_MAP, [test "x$HAVE_GBM_BO_MAP" = "xyes"])
+
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
diff --git a/gst-decoder.c b/gst-decoder.c
index 5431014..0aa7a55 100644
--- a/gst-decoder.c
+++ b/gst-decoder.c
@@ -332,6 +332,7 @@ set_last_frame(struct decoder *dec, EGLImage frame, GstSample *samp)
 	dec->last_samp = samp;
 }
 
+#if HAVE_GBM_BO_MAP
 // TODO this could probably be a helper re-used by cube-tex:
 static int
 buf_to_fd(const struct gbm *gbm, int size, void *ptr)
@@ -357,6 +358,7 @@ buf_to_fd(const struct gbm *gbm, int size, void *ptr)
 
 	return fd;
 }
+#endif
 
 static EGLImage
 buffer_to_image(struct decoder *dec, GstBuffer *buf)
@@ -410,12 +412,15 @@ buffer_to_image(struct decoder *dec, GstBuffer *buf)
 
 	if (is_dmabuf_mem) {
 		dmabuf_fd = dup(gst_dmabuf_memory_get_fd(mem));
-	} else {
+	}
+#if HAVE_GBM_BO_MAP
+	else {
 		GstMapInfo map_info;
 		gst_buffer_map(buf, &map_info, GST_MAP_READ);
 		dmabuf_fd = buf_to_fd(dec->gbm, map_info.size, map_info.data);
 		gst_buffer_unmap(buf, &map_info);
 	}
+#endif
 
 	if (dmabuf_fd < 0) {
 		GST_ERROR("could not obtain DMABUF FD");
diff --git a/kmscube.c b/kmscube.c
index 81803be..e93da67 100644
--- a/kmscube.c
+++ b/kmscube.c
@@ -166,7 +166,11 @@ int main(int argc, char *argv[])
 	else if (mode == VIDEO)
 		egl = init_cube_video(gbm, video, samples);
 	else
+#if HAVE_GBM_BO_MAP
 		egl = init_cube_tex(gbm, mode, samples);
+#else
+		printf("gbm_bo_map() support missing\n");
+#endif
 
 	if (!egl) {
 		printf("failed to initialize EGL\n");
-- 
2.22.0

