panfrost: Set bo->size[0] in the DRM backend
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Mon, 11 Mar 2019 12:34:53 +0000 (13:34 +0100)
committerTomeu Vizoso <tomeu.vizoso@collabora.com>
Wed, 13 Mar 2019 06:35:25 +0000 (07:35 +0100)
So we can unmap it later.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
include/drm-uapi/panfrost_drm.h
src/gallium/drivers/panfrost/pan_drm.c

index 7618f14f9e2632fe55beb12f5d79018d76e1373a..a0ead4979cccc9e597ffc3c613de2006be7ff35b 100644 (file)
@@ -27,7 +27,6 @@ extern "C" {
 #define DRM_IOCTL_PANFROST_GET_BO_OFFSET       DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_GET_BO_OFFSET, struct drm_panfrost_get_bo_offset)
 
 #define PANFROST_JD_REQ_FS (1 << 0)
-
 /**
  * struct drm_panfrost_submit - ioctl argument for submitting commands to the 3D
  * engine.
index 6d1129ff5f2b7e4baa980ece69d8e4c9c04cc818..71e8c6ac1f9d7b7da07c194532f5aa6d341bad3f 100644 (file)
@@ -125,7 +125,7 @@ panfrost_drm_import_bo(struct panfrost_screen *screen, struct winsys_handle *wha
        struct panfrost_drm *drm = (struct panfrost_drm *)screen->driver;
         struct drm_panfrost_get_bo_offset get_bo_offset = {0,};
        struct drm_panfrost_mmap_bo mmap_bo = {0,};
-        int ret, size;
+        int ret;
         unsigned gem_handle;
 
        ret = drmPrimeFDToHandle(drm->fd, whandle->handle, &gem_handle);
@@ -146,9 +146,9 @@ panfrost_drm_import_bo(struct panfrost_screen *screen, struct winsys_handle *wha
                assert(0);
        }
 
-       size = lseek(whandle->handle, 0, SEEK_END);
-       assert(size > 0);
-        bo->cpu[0] = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED,
+        bo->size[0] = lseek(whandle->handle, 0, SEEK_END);
+        assert(bo->size[0] > 0);
+        bo->cpu[0] = mmap(NULL, bo->size[0], PROT_READ | PROT_WRITE, MAP_SHARED,
                        drm->fd, mmap_bo.offset);
         if (bo->cpu[0] == MAP_FAILED) {
                 fprintf(stderr, "mmap failed: %p\n", bo->cpu[0]);
@@ -156,7 +156,7 @@ panfrost_drm_import_bo(struct panfrost_screen *screen, struct winsys_handle *wha
        }
 
         /* Record the mmap if we're tracing */
-        pantrace_mmap(bo->gpu[0], bo->cpu[0], size, NULL);
+        pantrace_mmap(bo->gpu[0], bo->cpu[0], bo->size[0], NULL);
 
         return bo;
 }