Add checking dma-buf.h header 15/296015/1 accepted/tizen/unified/riscv/20230719.000807
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 18 Jul 2023 09:16:44 +0000 (18:16 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 18 Jul 2023 09:16:44 +0000 (18:16 +0900)
Change-Id: Id5012aeb1e3b20c9118118ec605c85d47db9e1bd

configure.ac
src/tbm_backend_dumb.c

index 189329f..59839c5 100644 (file)
@@ -59,6 +59,11 @@ if test "x$CACHE_CTRL" = xyes; then
     AC_DEFINE(ENABLE_CACHECRTL, 1, [Enable cache control])
 fi
 
+AC_CHECK_HEADERS([linux/dma-buf.h], [have_dma_buf="yes"], [have_dma_buf="no"])
+if test "x${have_dma_buf}" = "xyes" ; then
+       AC_DEFINE(HAVE_DMA_BUF, 1, [Enable dma buf sync])
+fi
+
 LIBHAL_BACKEND_TBM_DUMB_CFLAGS="$HAL_API_COMMON_CFLAGS $HAL_API_TBM_CFLAGS $LIBDRM_CFLAGS $DLOG_CFLAGS $LIBUDEV_CFLAGS "
 LIBHAL_BACKEND_TBM_DUMB_LIBS="$HAL_API_COMMON_LIBS $HAL_API_TBM_LIBS $LIBDRM_LIBS $DLOG_LIBS $LIBUDEV_LIBS "
 
index 9b21984..6680e7a 100644 (file)
@@ -51,9 +51,12 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <hal-common.h>
 #include <hal-tbm-types.h>
 #include <hal-tbm-interface.h>
-#include <linux/dma-buf.h>
 #include "tbm_backend_log.h"
 
+#ifdef HAVE_DMA_BUF
+#include <linux/dma-buf.h>
+#endif
+
 #define TBM_COLOR_FORMAT_COUNT 4
 
 #define SIZE_ALIGN(value, base) (((value) + ((base) - 1)) & ~((base) - 1))
@@ -1033,7 +1036,6 @@ tbm_dumb_bo_map(hal_tbm_bo *bo, hal_tbm_bo_device_type device,
        tbm_dumb_bo *bo_data = (tbm_dumb_bo *)bo;
        hal_tbm_bo_handle bo_handle;
        tbm_dumb_bufmgr *bufmgr_data;
-       struct dma_buf_sync sync = {0, };
 
        if (!bo_data) {
                if (error)
@@ -1073,6 +1075,9 @@ tbm_dumb_bo_map(hal_tbm_bo *bo, hal_tbm_bo_device_type device,
                return (hal_tbm_bo_handle) NULL;
        }
 
+#ifdef HAVE_DMA_BUF
+       struct dma_buf_sync sync = {0, };
+
        if (device == HAL_TBM_DEVICE_CPU) {
                sync.flags |= DMA_BUF_SYNC_START;
                if (opt & HAL_TBM_OPTION_READ)
@@ -1085,6 +1090,7 @@ tbm_dumb_bo_map(hal_tbm_bo *bo, hal_tbm_bo_device_type device,
                                        bo_data);
                }
        }
+#endif
 
        bo_data->device = device;
        bo_data->opt = opt;
@@ -1100,7 +1106,6 @@ tbm_dumb_bo_unmap(hal_tbm_bo *bo)
 {
        tbm_dumb_bo *bo_data = (tbm_dumb_bo *)bo;
        tbm_dumb_bufmgr *bufmgr_data;
-       struct dma_buf_sync sync = {0, };
 
        if (!bo_data)
                return HAL_TBM_ERROR_INVALID_PARAMETER;
@@ -1112,6 +1117,9 @@ tbm_dumb_bo_unmap(hal_tbm_bo *bo)
        if (!bo_data->gem)
                return HAL_TBM_ERROR_INVALID_PARAMETER;
 
+#ifdef HAVE_DMA_BUF
+       struct dma_buf_sync sync = {0, };
+
        if (bo_data->device == HAL_TBM_DEVICE_CPU) {
                sync.flags |= DMA_BUF_SYNC_END;
                if (bo_data->opt & HAL_TBM_OPTION_READ)
@@ -1124,6 +1132,7 @@ tbm_dumb_bo_unmap(hal_tbm_bo *bo)
                                        bo_data);
                }
        }
+#endif
 
        bo_data->device = 0;
        bo_data->opt = 0;