minigbm: gbm.h: organize our downstream patches

This patch series is not bisectable.

BUG=b:145747113
TEST=compile

Change-Id: I447e554f27e55e43a4f5d3ca8f1725eda46852fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/1963001
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
diff --git a/gbm.c b/gbm.c
index 8db622b..d46d212 100644
--- a/gbm.c
+++ b/gbm.c
@@ -174,7 +174,6 @@
 	struct gbm_bo *bo;
 	struct drv_import_fd_data drv_data;
 	struct gbm_import_fd_data *fd_data = buffer;
-	struct gbm_import_fd_planar_data *fd_planar_data = buffer;
 	struct gbm_import_fd_modifier_data *fd_modifier_data = buffer;
 	uint32_t gbm_format;
 	size_t num_planes, i, num_fds;
@@ -216,26 +215,6 @@
 			drv_data.fds[i] = -1;
 
 		break;
-	case GBM_BO_IMPORT_FD_PLANAR:
-		gbm_format = fd_planar_data->format;
-		drv_data.width = fd_planar_data->width;
-		drv_data.height = fd_planar_data->height;
-		drv_data.format = fd_planar_data->format;
-		num_planes = drv_num_planes_from_format(drv_data.format);
-
-		assert(num_planes);
-
-		for (i = 0; i < num_planes; i++) {
-			drv_data.fds[i] = fd_planar_data->fds[i];
-			drv_data.offsets[i] = fd_planar_data->offsets[i];
-			drv_data.strides[i] = fd_planar_data->strides[i];
-			drv_data.format_modifiers[i] = fd_planar_data->format_modifiers[i];
-		}
-
-		for (i = num_planes; i < GBM_MAX_PLANES; i++)
-			drv_data.fds[i] = -1;
-
-		break;
 	default:
 		return NULL;
 	}
@@ -258,30 +237,6 @@
 	return bo;
 }
 
-PUBLIC void *gbm_bo_map(struct gbm_bo *bo, uint32_t x, uint32_t y, uint32_t width, uint32_t height,
-			uint32_t transfer_flags, uint32_t *stride, void **map_data, size_t plane)
-{
-	void *addr;
-	off_t offset;
-	uint32_t map_flags;
-	struct rectangle rect = { .x = x, .y = y, .width = width, .height = height };
-	if (!bo || width == 0 || height == 0 || !stride || !map_data)
-		return NULL;
-
-	map_flags = (transfer_flags & GBM_BO_TRANSFER_READ) ? BO_MAP_READ : BO_MAP_NONE;
-	map_flags |= (transfer_flags & GBM_BO_TRANSFER_WRITE) ? BO_MAP_WRITE : BO_MAP_NONE;
-
-	addr = drv_bo_map(bo->bo, &rect, map_flags, (struct mapping **)map_data, plane);
-	if (addr == MAP_FAILED)
-		return MAP_FAILED;
-
-	*stride = ((struct mapping *)*map_data)->vma->map_strides[plane];
-
-	offset = *stride * rect.y;
-	offset += rect.x * drv_bytes_per_pixel_from_format(bo->gbm_format, plane);
-	return (void *)((uint8_t *)addr + offset);
-}
-
 PUBLIC void gbm_bo_unmap(struct gbm_bo *bo, void *map_data)
 {
 	assert(bo);
@@ -303,24 +258,14 @@
 	return gbm_bo_get_stride_for_plane(bo, 0);
 }
 
-PUBLIC uint32_t gbm_bo_get_stride_or_tiling(struct gbm_bo *bo)
-{
-	return drv_bo_get_stride_or_tiling(bo->bo);
-}
-
 PUBLIC uint32_t gbm_bo_get_format(struct gbm_bo *bo)
 {
 	return bo->gbm_format;
 }
 
-PUBLIC uint64_t gbm_bo_get_format_modifier(struct gbm_bo *bo)
-{
-	return gbm_bo_get_modifier(bo);
-}
-
 PUBLIC uint64_t gbm_bo_get_modifier(struct gbm_bo *bo)
 {
-	return gbm_bo_get_plane_format_modifier(bo, 0);
+	return drv_bo_get_plane_format_modifier(bo->bo, 0);
 }
 
 PUBLIC struct gbm_device *gbm_bo_get_device(struct gbm_bo *bo)
@@ -338,59 +283,24 @@
 	return gbm_bo_get_plane_fd(bo, 0);
 }
 
-PUBLIC size_t gbm_bo_get_num_planes(struct gbm_bo *bo)
-{
-	return gbm_bo_get_plane_count(bo);
-}
-
-PUBLIC size_t gbm_bo_get_plane_count(struct gbm_bo *bo)
+PUBLIC int gbm_bo_get_plane_count(struct gbm_bo *bo)
 {
 	return drv_bo_get_num_planes(bo->bo);
 }
 
-PUBLIC union gbm_bo_handle gbm_bo_get_plane_handle(struct gbm_bo *bo, size_t plane)
-{
-	return gbm_bo_get_handle_for_plane(bo, plane);
-}
-
 PUBLIC union gbm_bo_handle gbm_bo_get_handle_for_plane(struct gbm_bo *bo, size_t plane)
 {
-	return (union gbm_bo_handle)drv_bo_get_plane_handle(bo->bo, plane).u64;
-}
-
-PUBLIC int gbm_bo_get_plane_fd(struct gbm_bo *bo, size_t plane)
-{
-	return drv_bo_get_plane_fd(bo->bo, plane);
-}
-
-PUBLIC uint32_t gbm_bo_get_plane_offset(struct gbm_bo *bo, size_t plane)
-{
-	return gbm_bo_get_offset(bo, plane);
+	return (union gbm_bo_handle)drv_bo_get_plane_handle(bo->bo, (size_t)plane).u64;
 }
 
 PUBLIC uint32_t gbm_bo_get_offset(struct gbm_bo *bo, size_t plane)
 {
-	return drv_bo_get_plane_offset(bo->bo, plane);
-}
-
-PUBLIC uint32_t gbm_bo_get_plane_size(struct gbm_bo *bo, size_t plane)
-{
-	return drv_bo_get_plane_size(bo->bo, plane);
-}
-
-PUBLIC uint32_t gbm_bo_get_plane_stride(struct gbm_bo *bo, size_t plane)
-{
-	return gbm_bo_get_stride_for_plane(bo, plane);
+	return drv_bo_get_plane_offset(bo->bo, (size_t)plane);
 }
 
 PUBLIC uint32_t gbm_bo_get_stride_for_plane(struct gbm_bo *bo, size_t plane)
 {
-	return drv_bo_get_plane_stride(bo->bo, plane);
-}
-
-PUBLIC uint64_t gbm_bo_get_plane_format_modifier(struct gbm_bo *bo, size_t plane)
-{
-	return drv_bo_get_plane_format_modifier(bo->bo, plane);
+	return drv_bo_get_plane_stride(bo->bo, (size_t)plane);
 }
 
 PUBLIC void gbm_bo_set_user_data(struct gbm_bo *bo, void *data,
@@ -404,3 +314,66 @@
 {
 	return bo->user_data;
 }
+
+/*
+ * The following functions are not deprecated, but not in the Mesa the gbm
+ * header. The main difference is minigbm allows for the possibility of
+ * disjoint YUV images, while Mesa GBM does not.
+ */
+PUBLIC uint32_t gbm_bo_get_plane_size(struct gbm_bo *bo, size_t plane)
+{
+	return drv_bo_get_plane_size(bo->bo, plane);
+}
+
+PUBLIC int gbm_bo_get_plane_fd(struct gbm_bo *bo, size_t plane)
+{
+	return drv_bo_get_plane_fd(bo->bo, plane);
+}
+
+PUBLIC void *gbm_bo_map(struct gbm_bo *bo, uint32_t x, uint32_t y, uint32_t width, uint32_t height,
+			uint32_t transfer_flags, uint32_t *stride, void **map_data, size_t plane)
+{
+	void *addr;
+	off_t offset;
+	uint32_t map_flags;
+	plane = (size_t)plane;
+	struct rectangle rect = { .x = x, .y = y, .width = width, .height = height };
+	if (!bo || width == 0 || height == 0 || !stride || !map_data)
+		return NULL;
+
+	map_flags = (transfer_flags & GBM_BO_TRANSFER_READ) ? BO_MAP_READ : BO_MAP_NONE;
+	map_flags |= (transfer_flags & GBM_BO_TRANSFER_WRITE) ? BO_MAP_WRITE : BO_MAP_NONE;
+
+	addr = drv_bo_map(bo->bo, &rect, map_flags, (struct mapping **)map_data, plane);
+	if (addr == MAP_FAILED)
+		return MAP_FAILED;
+
+	*stride = ((struct mapping *)*map_data)->vma->map_strides[plane];
+
+	offset = *stride * rect.y;
+	offset += rect.x * drv_bytes_per_pixel_from_format(bo->gbm_format, plane);
+	return (void *)((uint8_t *)addr + offset);
+}
+
+/*
+ * The following functions are deprecated. They can be removed * once crbug.com/946907 is fixed.
+ */
+PUBLIC size_t gbm_bo_get_num_planes(struct gbm_bo *bo)
+{
+	return gbm_bo_get_plane_count(bo);
+}
+
+PUBLIC union gbm_bo_handle gbm_bo_get_plane_handle(struct gbm_bo *bo, size_t plane)
+{
+	return gbm_bo_get_handle_for_plane(bo, plane);
+}
+
+PUBLIC uint32_t gbm_bo_get_plane_offset(struct gbm_bo *bo, size_t plane)
+{
+	return gbm_bo_get_offset(bo, plane);
+}
+
+PUBLIC uint32_t gbm_bo_get_plane_stride(struct gbm_bo *bo, size_t plane)
+{
+	return gbm_bo_get_stride_for_plane(bo, plane);
+}