diff options
author | Christian König <christian.koenig@amd.com> | 2015-09-03 11:34:59 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-09-23 17:23:34 -0400 |
commit | 72d7668b5ba5180b651e8a07dd6ed62e4e26f207 (patch) | |
tree | 0803bb59805b4847a91c924e073276f2a3c87299 /drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |
parent | b7d698d7fd7d132c6ebe56d230584f2cae6c94ee (diff) |
drm/amdgpu: export reservation_object from dmabuf to ttm (v2)
Adds an extra argument to amdgpu_bo_create, which is only used in amdgpu_prime.c.
Port of radeon commit 831b6966a60fe72d85ae3576056b4e4e0775b112.
v2: fix up kfd.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 08b09d55b96f..f25cfed33927 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |||
@@ -215,6 +215,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, | |||
215 | bool kernel, u32 domain, u64 flags, | 215 | bool kernel, u32 domain, u64 flags, |
216 | struct sg_table *sg, | 216 | struct sg_table *sg, |
217 | struct ttm_placement *placement, | 217 | struct ttm_placement *placement, |
218 | struct reservation_object *resv, | ||
218 | struct amdgpu_bo **bo_ptr) | 219 | struct amdgpu_bo **bo_ptr) |
219 | { | 220 | { |
220 | struct amdgpu_bo *bo; | 221 | struct amdgpu_bo *bo; |
@@ -261,7 +262,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, | |||
261 | /* Kernel allocation are uninterruptible */ | 262 | /* Kernel allocation are uninterruptible */ |
262 | r = ttm_bo_init(&adev->mman.bdev, &bo->tbo, size, type, | 263 | r = ttm_bo_init(&adev->mman.bdev, &bo->tbo, size, type, |
263 | &bo->placement, page_align, !kernel, NULL, | 264 | &bo->placement, page_align, !kernel, NULL, |
264 | acc_size, sg, NULL, &amdgpu_ttm_bo_destroy); | 265 | acc_size, sg, resv, &amdgpu_ttm_bo_destroy); |
265 | if (unlikely(r != 0)) { | 266 | if (unlikely(r != 0)) { |
266 | return r; | 267 | return r; |
267 | } | 268 | } |
@@ -275,7 +276,9 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, | |||
275 | int amdgpu_bo_create(struct amdgpu_device *adev, | 276 | int amdgpu_bo_create(struct amdgpu_device *adev, |
276 | unsigned long size, int byte_align, | 277 | unsigned long size, int byte_align, |
277 | bool kernel, u32 domain, u64 flags, | 278 | bool kernel, u32 domain, u64 flags, |
278 | struct sg_table *sg, struct amdgpu_bo **bo_ptr) | 279 | struct sg_table *sg, |
280 | struct reservation_object *resv, | ||
281 | struct amdgpu_bo **bo_ptr) | ||
279 | { | 282 | { |
280 | struct ttm_placement placement = {0}; | 283 | struct ttm_placement placement = {0}; |
281 | struct ttm_place placements[AMDGPU_GEM_DOMAIN_MAX + 1]; | 284 | struct ttm_place placements[AMDGPU_GEM_DOMAIN_MAX + 1]; |
@@ -286,11 +289,9 @@ int amdgpu_bo_create(struct amdgpu_device *adev, | |||
286 | amdgpu_ttm_placement_init(adev, &placement, | 289 | amdgpu_ttm_placement_init(adev, &placement, |
287 | placements, domain, flags); | 290 | placements, domain, flags); |
288 | 291 | ||
289 | return amdgpu_bo_create_restricted(adev, size, byte_align, | 292 | return amdgpu_bo_create_restricted(adev, size, byte_align, kernel, |
290 | kernel, domain, flags, | 293 | domain, flags, sg, &placement, |
291 | sg, | 294 | resv, bo_ptr); |
292 | &placement, | ||
293 | bo_ptr); | ||
294 | } | 295 | } |
295 | 296 | ||
296 | int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr) | 297 | int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr) |