minigbm: More sophisticated gbm_bo_map/gbm_bo_unmap

We previously added the gbm_bo_map/gbm_bo_unmap (see CL:393927)
entry points since we wanted to do driver-specific detiling during
screenshot capture tests.  We ignored most the parameters and mapped
the entire buffer.  This CL adds the ability to:

1) Return the starting address within a byte given a specific x, y
   in the buffer.

2) Handle the case where there are more than one kernel buffers
   per buffer object.  Currently, only the Exynos driver would use
   this capability.

BUG=chromium:653284
TEST=Ran cros_gralloc with modified code

CQ-DEPEND=CL:393927

Change-Id: I19d75d2f16489c0184e96305fb643f18477e1cdb
Reviewed-on: https://chromium-review.googlesource.com/395066
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
diff --git a/drv.h b/drv.h
index cc7752a..c9902b8 100644
--- a/drv.h
+++ b/drv.h
@@ -167,15 +167,16 @@
 void
 drv_bo_destroy(struct bo *bo);
 
-void *
-drv_bo_map(struct bo *bo);
-
-int
-drv_bo_unmap(struct bo *bo);
-
 struct bo *
 drv_bo_import(struct driver *drv, struct drv_import_fd_data *data);
 
+void *
+drv_bo_map(struct bo *bo, uint32_t x, uint32_t y, uint32_t width,
+	   uint32_t height, uint32_t flags, void **map_data, size_t plane);
+
+int
+drv_bo_unmap(struct bo *bo, void *map_data);
+
 uint32_t
 drv_bo_get_width(struct bo *bo);