From 9c979e0ec4052acc93da94f477c3d3d6139ebd31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 11 Jul 2018 20:35:19 -0400 Subject: [PATCH] amdgpu: add amdgpu_bo_handle_type_kms_noimport MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Junwei Zhang Reviewed-by: Christian König --- amdgpu/amdgpu.h | 7 ++++++- amdgpu/amdgpu_bo.c | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index 36f91058..be83b457 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -84,7 +84,12 @@ enum amdgpu_bo_handle_type { amdgpu_bo_handle_type_kms = 1, /** DMA-buf fd handle */ - amdgpu_bo_handle_type_dma_buf_fd = 2 + amdgpu_bo_handle_type_dma_buf_fd = 2, + + /** KMS handle, but re-importing as a DMABUF handle through + * drmPrimeHandleToFD is forbidden. (Glamor does that) + */ + amdgpu_bo_handle_type_kms_noimport = 3, }; /** Define known types of GPU VM VA ranges */ diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index 9e37b149..d29be244 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -241,6 +241,8 @@ int amdgpu_bo_export(amdgpu_bo_handle bo, case amdgpu_bo_handle_type_kms: amdgpu_add_handle_to_table(bo); + /* fall through */ + case amdgpu_bo_handle_type_kms_noimport: *shared_handle = bo->handle; return 0; @@ -306,6 +308,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev, break; case amdgpu_bo_handle_type_kms: + case amdgpu_bo_handle_type_kms_noimport: /* Importing a KMS handle in not allowed. */ pthread_mutex_unlock(&dev->bo_table_mutex); return -EPERM; @@ -375,6 +378,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev, break; case amdgpu_bo_handle_type_kms: + case amdgpu_bo_handle_type_kms_noimport: assert(0); /* unreachable */ }