OSDN Git Service

Add new GBM_BO_IMPORT_FD_PLANAR
[android-x86/external-minigbm.git] / drv.c
diff --git a/drv.c b/drv.c
index 6fcdab7..d4a50ce 100644 (file)
--- a/drv.c
+++ b/drv.c
@@ -17,6 +17,9 @@
 #include "helpers.h"
 #include "util.h"
 
+#ifdef DRV_AMDGPU
+extern struct backend backend_amdgpu;
+#endif
 extern struct backend backend_cirrus;
 extern struct backend backend_evdi;
 #ifdef DRV_EXYNOS
@@ -52,6 +55,9 @@ static struct backend *drv_get_backend(int fd)
                return NULL;
 
        struct backend *backend_list[] = {
+#ifdef DRV_AMDGPU
+               &backend_amdgpu,
+#endif
                &backend_cirrus,
                &backend_evdi,
 #ifdef DRV_EXYNOS
@@ -264,7 +270,7 @@ drv_bo_unmap(struct bo *bo)
        assert(drv_num_buffers_per_bo(bo) == 1);
 
        if (bo->map_data && bo->map_data != MAP_FAILED)
-               ret = munmap(bo->map_data, bo->sizes[0]);
+               ret = munmap(bo->map_data, bo->total_size);
 
        bo->map_data = NULL;
 
@@ -309,6 +315,7 @@ struct bo *drv_bo_import(struct driver *drv, struct drv_import_fd_data *data)
                bo->strides[plane] = data->strides[plane];
                bo->offsets[plane] = data->offsets[plane];
                bo->sizes[plane] = data->sizes[plane];
+               bo->format_modifiers[plane] = data->format_modifiers[plane];
 
                pthread_mutex_lock(&drv->table_lock);
                drv_increment_reference_count(drv, bo, plane);