diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0544-drm-amdgpu-export-reservation_object-from-dmabuf-to-.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0544-drm-amdgpu-export-reservation_object-from-dmabuf-to-.patch | 609 |
1 files changed, 609 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0544-drm-amdgpu-export-reservation_object-from-dmabuf-to-.patch b/common/recipes-kernel/linux/files/0544-drm-amdgpu-export-reservation_object-from-dmabuf-to-.patch new file mode 100644 index 00000000..59259447 --- /dev/null +++ b/common/recipes-kernel/linux/files/0544-drm-amdgpu-export-reservation_object-from-dmabuf-to-.patch @@ -0,0 +1,609 @@ +From 72d7668b5ba5180b651e8a07dd6ed62e4e26f207 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 3 Sep 2015 17:34:59 +0200 +Subject: [PATCH 0544/1050] drm/amdgpu: export reservation_object from dmabuf + to ttm (v2) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +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> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 6 ++++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 5 +++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 +++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++- + drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 15 ++++++++------- + drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 ++ + drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 5 ++++- + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 4 ++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 8 +++++--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 6 +++--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++-- + drivers/gpu/drm/amd/amdgpu/cz_smc.c | 6 ++++-- + drivers/gpu/drm/amd/amdgpu/fiji_smc.c | 4 ++-- + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 19 +++++++++++-------- + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 10 +++++----- + drivers/gpu/drm/amd/amdgpu/iceland_smc.c | 2 +- + drivers/gpu/drm/amd/amdgpu/tonga_smc.c | 4 ++-- + 24 files changed, 70 insertions(+), 52 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +index 496ed21..84d68d6 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +@@ -183,7 +183,7 @@ int alloc_gtt_mem(struct kgd_dev *kgd, size_t size, + return -ENOMEM; + + r = amdgpu_bo_create(rdev, size, PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_GTT, +- AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, &(*mem)->bo); ++ AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, &(*mem)->bo); + if (r) { + dev_err(rdev->dev, + "failed to allocate BO for amdkfd (%d)\n", r); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c +index 98d59ee..cd639c3 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c +@@ -79,7 +79,8 @@ static void amdgpu_benchmark_move(struct amdgpu_device *adev, unsigned size, + int time; + + n = AMDGPU_BENCHMARK_ITERATIONS; +- r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, sdomain, 0, NULL, &sobj); ++ r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, sdomain, 0, NULL, ++ NULL, &sobj); + if (r) { + goto out_cleanup; + } +@@ -91,7 +92,8 @@ static void amdgpu_benchmark_move(struct amdgpu_device *adev, unsigned size, + if (r) { + goto out_cleanup; + } +- r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, ddomain, 0, NULL, &dobj); ++ r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, ddomain, 0, NULL, ++ NULL, &dobj); + if (r) { + goto out_cleanup; + } +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +index 6b1243f..1c3fc99 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +@@ -86,7 +86,7 @@ static int amdgpu_cgs_gmap_kmem(void *cgs_device, void *kmem, + + struct sg_table *sg = drm_prime_pages_to_sg(&kmem_page, npages); + ret = amdgpu_bo_create(adev, size, PAGE_SIZE, false, +- AMDGPU_GEM_DOMAIN_GTT, 0, sg, &bo); ++ AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL, &bo); + if (ret) + return ret; + ret = amdgpu_bo_reserve(bo, false); +@@ -197,7 +197,8 @@ static int amdgpu_cgs_alloc_gpu_mem(void *cgs_device, + + ret = amdgpu_bo_create_restricted(adev, size, PAGE_SIZE, + true, domain, flags, +- NULL, &placement, &obj); ++ NULL, &placement, NULL, ++ &obj); + if (ret) { + DRM_ERROR("(%d) bo create failed\n", ret); + return ret; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index 6ff6ae9..2d569ec 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -246,7 +246,7 @@ static int amdgpu_vram_scratch_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, AMDGPU_GPU_PAGE_SIZE, + PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->vram_scratch.robj); ++ NULL, NULL, &adev->vram_scratch.robj); + if (r) { + return r; + } +@@ -449,7 +449,8 @@ static int amdgpu_wb_init(struct amdgpu_device *adev) + + if (adev->wb.wb_obj == NULL) { + r = amdgpu_bo_create(adev, AMDGPU_MAX_WB * 4, PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GTT, 0, NULL, &adev->wb.wb_obj); ++ AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, ++ &adev->wb.wb_obj); + if (r) { + dev_warn(adev->dev, "(%d) create WB bo failed\n", r); + return r; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +index cbd3a48..7312d72 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +@@ -127,7 +127,7 @@ int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, adev->gart.table_size, + PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->gart.robj); ++ NULL, NULL, &adev->gart.robj); + if (r) { + return r; + } +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +index 5839fab..b75c3b2 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +@@ -69,7 +69,8 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, + } + } + retry: +- r = amdgpu_bo_create(adev, size, alignment, kernel, initial_domain, flags, NULL, &robj); ++ r = amdgpu_bo_create(adev, size, alignment, kernel, initial_domain, ++ flags, NULL, NULL, &robj); + if (r) { + if (r != -ERESTARTSYS) { + if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) { +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c +index 5c8a803..534fc04 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c +@@ -43,7 +43,7 @@ static int amdgpu_ih_ring_alloc(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, adev->irq.ih.ring_size, + PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_GTT, 0, +- NULL, &adev->irq.ih.ring_obj); ++ NULL, NULL, &adev->irq.ih.ring_obj); + if (r) { + DRM_ERROR("amdgpu: failed to create ih ring buffer (%d).\n", r); + return r; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +index 08b09d5..f25cfed 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, + bool kernel, u32 domain, u64 flags, + struct sg_table *sg, + struct ttm_placement *placement, ++ struct reservation_object *resv, + struct amdgpu_bo **bo_ptr) + { + struct amdgpu_bo *bo; +@@ -261,7 +262,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, + /* Kernel allocation are uninterruptible */ + r = ttm_bo_init(&adev->mman.bdev, &bo->tbo, size, type, + &bo->placement, page_align, !kernel, NULL, +- acc_size, sg, NULL, &amdgpu_ttm_bo_destroy); ++ acc_size, sg, resv, &amdgpu_ttm_bo_destroy); + if (unlikely(r != 0)) { + return r; + } +@@ -275,7 +276,9 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, + int amdgpu_bo_create(struct amdgpu_device *adev, + unsigned long size, int byte_align, + bool kernel, u32 domain, u64 flags, +- struct sg_table *sg, struct amdgpu_bo **bo_ptr) ++ struct sg_table *sg, ++ struct reservation_object *resv, ++ struct amdgpu_bo **bo_ptr) + { + struct ttm_placement placement = {0}; + struct ttm_place placements[AMDGPU_GEM_DOMAIN_MAX + 1]; +@@ -286,11 +289,9 @@ int amdgpu_bo_create(struct amdgpu_device *adev, + amdgpu_ttm_placement_init(adev, &placement, + placements, domain, flags); + +- return amdgpu_bo_create_restricted(adev, size, byte_align, +- kernel, domain, flags, +- sg, +- &placement, +- bo_ptr); ++ return amdgpu_bo_create_restricted(adev, size, byte_align, kernel, ++ domain, flags, sg, &placement, ++ resv, bo_ptr); + } + + int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr) +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +index 6ea18dc..3c2ff45 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +@@ -129,12 +129,14 @@ int amdgpu_bo_create(struct amdgpu_device *adev, + unsigned long size, int byte_align, + bool kernel, u32 domain, u64 flags, + struct sg_table *sg, ++ struct reservation_object *resv, + struct amdgpu_bo **bo_ptr); + int amdgpu_bo_create_restricted(struct amdgpu_device *adev, + unsigned long size, int byte_align, + bool kernel, u32 domain, u64 flags, + struct sg_table *sg, + struct ttm_placement *placement, ++ struct reservation_object *resv, + struct amdgpu_bo **bo_ptr); + int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr); + void amdgpu_bo_kunmap(struct amdgpu_bo *bo); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +index d9652fe..59f735a 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +@@ -61,12 +61,15 @@ struct drm_gem_object *amdgpu_gem_prime_import_sg_table(struct drm_device *dev, + struct dma_buf_attachment *attach, + struct sg_table *sg) + { ++ struct reservation_object *resv = attach->dmabuf->resv; + struct amdgpu_device *adev = dev->dev_private; + struct amdgpu_bo *bo; + int ret; + ++ ww_mutex_lock(&resv->lock, NULL); + ret = amdgpu_bo_create(adev, attach->dmabuf->size, PAGE_SIZE, false, +- AMDGPU_GEM_DOMAIN_GTT, 0, sg, &bo); ++ AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, &bo); ++ ww_mutex_unlock(&resv->lock); + if (ret) + return ERR_PTR(ret); + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +index 9bec914..130292d 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +@@ -407,7 +407,7 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, + if (ring->ring_obj == NULL) { + r = amdgpu_bo_create(adev, ring->ring_size, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_GTT, 0, +- NULL, &ring->ring_obj); ++ NULL, NULL, &ring->ring_obj); + if (r) { + dev_err(adev->dev, "(%d) ring create failed\n", r); + return r; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +index 74dad27..b70ce10 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +@@ -64,8 +64,8 @@ int amdgpu_sa_bo_manager_init(struct amdgpu_device *adev, + INIT_LIST_HEAD(&sa_manager->flist[i]); + } + +- r = amdgpu_bo_create(adev, size, align, true, +- domain, 0, NULL, &sa_manager->bo); ++ r = amdgpu_bo_create(adev, size, align, true, domain, ++ 0, NULL, NULL, &sa_manager->bo); + if (r) { + dev_err(adev->dev, "(%d) failed to allocate bo for manager\n", r); + return r; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c +index f80b1a4..4865615 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c +@@ -59,8 +59,9 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev) + goto out_cleanup; + } + +- r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM, 0, +- NULL, &vram_obj); ++ r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, ++ AMDGPU_GEM_DOMAIN_VRAM, 0, ++ NULL, NULL, &vram_obj); + if (r) { + DRM_ERROR("Failed to create VRAM object\n"); + goto out_cleanup; +@@ -80,7 +81,8 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev) + struct fence *fence = NULL; + + r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GTT, 0, NULL, gtt_obj + i); ++ AMDGPU_GEM_DOMAIN_GTT, 0, NULL, ++ NULL, gtt_obj + i); + if (r) { + DRM_ERROR("Failed to create GTT object %d\n", i); + goto out_lclean; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +index b5abd5c..364cbe9 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +@@ -861,7 +861,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, 256 * 1024, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->stollen_vga_memory); ++ NULL, NULL, &adev->stollen_vga_memory); + if (r) { + return r; + } +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +index 482e667..5cc95f1 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +@@ -247,7 +247,7 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev) + const struct common_firmware_header *header = NULL; + + err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GTT, 0, NULL, bo); ++ AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, bo); + if (err) { + dev_err(adev->dev, "(%d) Firmware buffer allocate failed\n", err); + err = -ENOMEM; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +index 2cf6c6b..3cc8663 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +@@ -156,7 +156,7 @@ int amdgpu_uvd_sw_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, bo_size, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->uvd.vcpu_bo); ++ NULL, NULL, &adev->uvd.vcpu_bo); + if (r) { + dev_err(adev->dev, "(%d) failed to allocate UVD bo\n", r); + return r; +@@ -905,7 +905,7 @@ int amdgpu_uvd_get_create_msg(struct amdgpu_ring *ring, uint32_t handle, + r = amdgpu_bo_create(adev, 1024, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &bo); ++ NULL, NULL, &bo); + if (r) + return r; + +@@ -954,7 +954,7 @@ int amdgpu_uvd_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle, + r = amdgpu_bo_create(adev, 1024, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &bo); ++ NULL, NULL, &bo); + if (r) + return r; + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +index 3cab96c..c90caf8 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +@@ -143,7 +143,7 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, unsigned long size) + r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->vce.vcpu_bo); ++ NULL, NULL, &adev->vce.vcpu_bo); + if (r) { + dev_err(adev->dev, "(%d) failed to allocate VCE bo\n", r); + return r; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +index b68dcb9..8927dc6 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +@@ -1101,7 +1101,7 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev, + AMDGPU_GPU_PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_NO_CPU_ACCESS, +- NULL, &pt); ++ NULL, NULL, &pt); + if (r) + goto error_free; + +@@ -1303,7 +1303,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm) + r = amdgpu_bo_create(adev, pd_size, align, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_NO_CPU_ACCESS, +- NULL, &vm->page_directory); ++ NULL, NULL, &vm->page_directory); + if (r) + return r; + +diff --git a/drivers/gpu/drm/amd/amdgpu/cz_smc.c b/drivers/gpu/drm/amd/amdgpu/cz_smc.c +index a72ffc7..e33180d 100644 +--- a/drivers/gpu/drm/amd/amdgpu/cz_smc.c ++++ b/drivers/gpu/drm/amd/amdgpu/cz_smc.c +@@ -814,7 +814,8 @@ int cz_smu_init(struct amdgpu_device *adev) + * 3. map kernel virtual address + */ + ret = amdgpu_bo_create(adev, priv->toc_buffer.data_size, PAGE_SIZE, +- true, AMDGPU_GEM_DOMAIN_GTT, 0, NULL, toc_buf); ++ true, AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, ++ toc_buf); + + if (ret) { + dev_err(adev->dev, "(%d) SMC TOC buffer allocation failed\n", ret); +@@ -822,7 +823,8 @@ int cz_smu_init(struct amdgpu_device *adev) + } + + ret = amdgpu_bo_create(adev, priv->smu_buffer.data_size, PAGE_SIZE, +- true, AMDGPU_GEM_DOMAIN_GTT, 0, NULL, smu_buf); ++ true, AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, ++ smu_buf); + + if (ret) { + dev_err(adev->dev, "(%d) SMC Internal buffer allocation failed\n", ret); +diff --git a/drivers/gpu/drm/amd/amdgpu/fiji_smc.c b/drivers/gpu/drm/amd/amdgpu/fiji_smc.c +index 322edea..bda1249 100644 +--- a/drivers/gpu/drm/amd/amdgpu/fiji_smc.c ++++ b/drivers/gpu/drm/amd/amdgpu/fiji_smc.c +@@ -764,7 +764,7 @@ int fiji_smu_init(struct amdgpu_device *adev) + ret = amdgpu_bo_create(adev, image_size, PAGE_SIZE, + true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, toc_buf); ++ NULL, NULL, toc_buf); + if (ret) { + DRM_ERROR("Failed to allocate memory for TOC buffer\n"); + return -ENOMEM; +@@ -774,7 +774,7 @@ int fiji_smu_init(struct amdgpu_device *adev) + ret = amdgpu_bo_create(adev, smu_internal_buffer_size, PAGE_SIZE, + true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, smu_buf); ++ NULL, NULL, smu_buf); + if (ret) { + DRM_ERROR("Failed to allocate memory for SMU internal buffer\n"); + return -ENOMEM; +diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +index 4bd1e5c..392ec10 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +@@ -3206,7 +3206,7 @@ static int gfx_v7_0_mec_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, + adev->gfx.mec.num_mec *adev->gfx.mec.num_pipe * MEC_HPD_SIZE * 2, + PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GTT, 0, NULL, ++ AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, + &adev->gfx.mec.hpd_eop_obj); + if (r) { + dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r); +@@ -3373,7 +3373,7 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, + sizeof(struct bonaire_mqd), + PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GTT, 0, NULL, ++ AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, + &ring->mqd_obj); + if (r) { + dev_warn(adev->dev, "(%d) create MQD bo failed\n", r); +@@ -3788,7 +3788,8 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->gfx.rlc.save_restore_obj); ++ NULL, NULL, ++ &adev->gfx.rlc.save_restore_obj); + if (r) { + dev_warn(adev->dev, "(%d) create RLC sr bo failed\n", r); + return r; +@@ -3831,7 +3832,8 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, dws * 4, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->gfx.rlc.clear_state_obj); ++ NULL, NULL, ++ &adev->gfx.rlc.clear_state_obj); + if (r) { + dev_warn(adev->dev, "(%d) create RLC c bo failed\n", r); + gfx_v7_0_rlc_fini(adev); +@@ -3870,7 +3872,8 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, adev->gfx.rlc.cp_table_size, PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, &adev->gfx.rlc.cp_table_obj); ++ NULL, NULL, ++ &adev->gfx.rlc.cp_table_obj); + if (r) { + dev_warn(adev->dev, "(%d) create RLC cp table bo failed\n", r); + gfx_v7_0_rlc_fini(adev); +@@ -4851,21 +4854,21 @@ static int gfx_v7_0_sw_init(void *handle) + r = amdgpu_bo_create(adev, adev->gds.mem.gfx_partition_size, + PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_GDS, 0, +- NULL, &adev->gds.gds_gfx_bo); ++ NULL, NULL, &adev->gds.gds_gfx_bo); + if (r) + return r; + + r = amdgpu_bo_create(adev, adev->gds.gws.gfx_partition_size, + PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_GWS, 0, +- NULL, &adev->gds.gws_gfx_bo); ++ NULL, NULL, &adev->gds.gws_gfx_bo); + if (r) + return r; + + r = amdgpu_bo_create(adev, adev->gds.oa.gfx_partition_size, + PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_OA, 0, +- NULL, &adev->gds.oa_gfx_bo); ++ NULL, NULL, &adev->gds.oa_gfx_bo); + if (r) + return r; + +diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +index d6d330b..78e5900 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +@@ -868,7 +868,7 @@ static int gfx_v8_0_mec_init(struct amdgpu_device *adev) + r = amdgpu_bo_create(adev, + adev->gfx.mec.num_mec *adev->gfx.mec.num_pipe * MEC_HPD_SIZE * 2, + PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GTT, 0, NULL, ++ AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, + &adev->gfx.mec.hpd_eop_obj); + if (r) { + dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r); +@@ -995,21 +995,21 @@ static int gfx_v8_0_sw_init(void *handle) + /* reserve GDS, GWS and OA resource for gfx */ + r = amdgpu_bo_create(adev, adev->gds.mem.gfx_partition_size, + PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GDS, 0, ++ AMDGPU_GEM_DOMAIN_GDS, 0, NULL, + NULL, &adev->gds.gds_gfx_bo); + if (r) + return r; + + r = amdgpu_bo_create(adev, adev->gds.gws.gfx_partition_size, + PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_GWS, 0, ++ AMDGPU_GEM_DOMAIN_GWS, 0, NULL, + NULL, &adev->gds.gws_gfx_bo); + if (r) + return r; + + r = amdgpu_bo_create(adev, adev->gds.oa.gfx_partition_size, + PAGE_SIZE, true, +- AMDGPU_GEM_DOMAIN_OA, 0, ++ AMDGPU_GEM_DOMAIN_OA, 0, NULL, + NULL, &adev->gds.oa_gfx_bo); + if (r) + return r; +@@ -3106,7 +3106,7 @@ static int gfx_v8_0_cp_compute_resume(struct amdgpu_device *adev) + sizeof(struct vi_mqd), + PAGE_SIZE, true, + AMDGPU_GEM_DOMAIN_GTT, 0, NULL, +- &ring->mqd_obj); ++ NULL, &ring->mqd_obj); + if (r) { + dev_warn(adev->dev, "(%d) create MQD bo failed\n", r); + return r; +diff --git a/drivers/gpu/drm/amd/amdgpu/iceland_smc.c b/drivers/gpu/drm/amd/amdgpu/iceland_smc.c +index c900aa9..966d4b2 100644 +--- a/drivers/gpu/drm/amd/amdgpu/iceland_smc.c ++++ b/drivers/gpu/drm/amd/amdgpu/iceland_smc.c +@@ -625,7 +625,7 @@ int iceland_smu_init(struct amdgpu_device *adev) + ret = amdgpu_bo_create(adev, image_size, PAGE_SIZE, + true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, toc_buf); ++ NULL, NULL, toc_buf); + if (ret) { + DRM_ERROR("Failed to allocate memory for TOC buffer\n"); + return -ENOMEM; +diff --git a/drivers/gpu/drm/amd/amdgpu/tonga_smc.c b/drivers/gpu/drm/amd/amdgpu/tonga_smc.c +index 1f5ac94..5421309 100644 +--- a/drivers/gpu/drm/amd/amdgpu/tonga_smc.c ++++ b/drivers/gpu/drm/amd/amdgpu/tonga_smc.c +@@ -763,7 +763,7 @@ int tonga_smu_init(struct amdgpu_device *adev) + ret = amdgpu_bo_create(adev, image_size, PAGE_SIZE, + true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, toc_buf); ++ NULL, NULL, toc_buf); + if (ret) { + DRM_ERROR("Failed to allocate memory for TOC buffer\n"); + return -ENOMEM; +@@ -773,7 +773,7 @@ int tonga_smu_init(struct amdgpu_device *adev) + ret = amdgpu_bo_create(adev, smu_internal_buffer_size, PAGE_SIZE, + true, AMDGPU_GEM_DOMAIN_VRAM, + AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED, +- NULL, smu_buf); ++ NULL, NULL, smu_buf); + if (ret) { + DRM_ERROR("Failed to allocate memory for SMU internal buffer\n"); + return -ENOMEM; +-- +1.9.1 + |