diff options
| author | Pratik Vishwakarma <Pratik.Vishwakarma@amd.com> | 2016-12-12 14:22:10 +0530 |
|---|---|---|
| committer | chrome-bot <chrome-bot@chromium.org> | 2017-01-11 04:07:16 -0800 |
| commit | bc1b535fde9492ca44a829a89b3dfd19ef6fa3c8 (patch) | |
| tree | 457076445998eb38348e20f3cda6a65f5132b781 /amdgpu.c | |
| parent | 682d73bd00595a493bd446c5274bef08bd17c096 (diff) | |
| download | platform_external_minigbm-bc1b535fde9492ca44a829a89b3dfd19ef6fa3c8.tar.gz platform_external_minigbm-bc1b535fde9492ca44a829a89b3dfd19ef6fa3c8.tar.bz2 platform_external_minigbm-bc1b535fde9492ca44a829a89b3dfd19ef6fa3c8.zip | |
minigbm: amdgpu: Add mmap implementation for amdgpu
BUG=chrome-os-partner:61504
TEST=graphics_Gbm
Change-Id: I4ad23fa5b55a249e75ec44fe499c499052f687e0
Reviewed-on: https://chromium-review.googlesource.com/418425
Commit-Ready: Pratik Vishwakarma <Pratik.Vishwakarma@amd.com>
Tested-by: Pratik Vishwakarma <Pratik.Vishwakarma@amd.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'amdgpu.c')
| -rw-r--r-- | amdgpu.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -8,6 +8,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/mman.h> #include <xf86drm.h> #include <amdgpu_drm.h> #include <amdgpu.h> @@ -352,12 +353,32 @@ static int amdgpu_bo_create(struct bo *bo, uint32_t width, uint32_t height, return ret; } +static void *amdgpu_bo_map(struct bo *bo, struct map_info *data, size_t plane) +{ + int ret; + union drm_amdgpu_gem_mmap gem_map; + + memset(&gem_map, 0, sizeof(gem_map)); + gem_map.in.handle = bo->handles[0].u32; + + ret = drmIoctl(bo->drv->fd, DRM_IOCTL_AMDGPU_GEM_MMAP, &gem_map); + if (ret) { + fprintf(stderr, "drv: DRM_IOCTL_AMDGPU_GEM_MMAP failed\n"); + return MAP_FAILED; + } + data->length = bo->sizes[0]; + + return mmap(0, bo->sizes[0], PROT_READ | PROT_WRITE, MAP_SHARED, + bo->drv->fd, gem_map.out.addr_ptr); +} + struct backend backend_amdgpu = { .name = "amdgpu", .init = amdgpu_init, .close = amdgpu_close, .bo_create = amdgpu_bo_create, .bo_destroy = drv_gem_bo_destroy, + .bo_map = amdgpu_bo_map, }; #endif |
