summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <[email protected]>2019-03-11 13:34:53 +0100
committerTomeu Vizoso <[email protected]>2019-03-13 07:35:25 +0100
commitbfbad30543dd896459b09e0e05bc70ea1727e0b9 (patch)
tree58a6ef4dc7e76921066703c26317c2c72cd965cc
parent3570d15b6d88bdcd353b31ffe5460d04a88b7b6f (diff)
panfrost: Set bo->size[0] in the DRM backend
So we can unmap it later. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--include/drm-uapi/panfrost_drm.h1
-rw-r--r--src/gallium/drivers/panfrost/pan_drm.c10
2 files changed, 5 insertions, 6 deletions
diff --git a/include/drm-uapi/panfrost_drm.h b/include/drm-uapi/panfrost_drm.h
index 7618f14f9e2..a0ead4979cc 100644
--- a/include/drm-uapi/panfrost_drm.h
+++ b/include/drm-uapi/panfrost_drm.h
@@ -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.
diff --git a/src/gallium/drivers/panfrost/pan_drm.c b/src/gallium/drivers/panfrost/pan_drm.c
index 6d1129ff5f2..71e8c6ac1f9 100644
--- a/src/gallium/drivers/panfrost/pan_drm.c
+++ b/src/gallium/drivers/panfrost/pan_drm.c
@@ -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;
}