From 761bf993ca55095f46380c0238583791c1797295 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 kmscube] 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]
---
 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 a36087d..ab4adbf 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 \
@@ -59,3 +58,7 @@ kmscube_LDADD += $(GST_LIBS)
 kmscube_CFLAGS += $(GST_CFLAGS)
 kmscube_SOURCES += cube-video.c gst-decoder.c
 endif
+
+if ENABLE_GBM_MAP
+kmscube_SOURCES += cube-tex.c
+endif
diff --git a/configure.ac b/configure.ac
index 8397f7b..c7f1f4d 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 2d6d581..b84980e 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 3a2c4dd..276dc55 100644
--- a/kmscube.c
+++ b/kmscube.c
@@ -148,7 +148,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.7.4

