All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/amdgpu: Add a parameter to amdgpu_bo_create()
@ 2017-07-27 19:48 Yong Zhao
       [not found] ` <1501184886-2450-1-git-send-email-Yong.Zhao-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Yong Zhao @ 2017-07-27 19:48 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Yong Zhao

The parameter init_value contains the value to which we initialized
VRAM bo when AMDGPU_GEM_CREATE_VRAM_CLEARED flag is set.

Change-Id: I9ef3b9dd3ca9b98cc25dd2eaff68fbe1129c3e3c
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |  3 ++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c |  4 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c       |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c      |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c       |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    | 12 +++++++++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h    |  2 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c     |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c        |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_test.c      |  4 ++--
 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       |  4 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c       |  4 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        |  4 ++--
 drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c         |  4 ++--
 drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c         | 10 +++++-----
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c         |  6 +++---
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c         |  4 ++--
 20 files changed, 43 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index 2292c77..6d2bd80 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -185,7 +185,8 @@ int alloc_gtt_mem(struct kgd_dev *kgd, size_t size,
 		return -ENOMEM;
 
 	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_GTT,
-			     AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, &(*mem)->bo);
+			     AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, 0,
+			     &(*mem)->bo);
 	if (r) {
 		dev_err(adev->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 2fb299a..63ec1e1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c
@@ -81,7 +81,7 @@ static void amdgpu_benchmark_move(struct amdgpu_device *adev, unsigned size,
 
 	n = AMDGPU_BENCHMARK_ITERATIONS;
 	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, sdomain, 0, NULL,
-			     NULL, &sobj);
+			     NULL, 0, &sobj);
 	if (r) {
 		goto out_cleanup;
 	}
@@ -94,7 +94,7 @@ static void amdgpu_benchmark_move(struct amdgpu_device *adev, unsigned size,
 		goto out_cleanup;
 	}
 	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, ddomain, 0, NULL,
-			     NULL, &dobj);
+			     NULL, 0, &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 3d41cd4..343cdf9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -124,7 +124,7 @@ static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
 	ret = amdgpu_bo_create_restricted(adev, size, PAGE_SIZE,
 					  true, domain, flags,
 					  NULL, &placement, NULL,
-					  &obj);
+					  0, &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 fe6783e..cf81f9d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -344,7 +344,7 @@ static int amdgpu_vram_scratch_init(struct amdgpu_device *adev)
 				     PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
 				     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 				     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-				     NULL, NULL, &adev->vram_scratch.robj);
+				     NULL, NULL, 0, &adev->vram_scratch.robj);
 		if (r) {
 			return r;
 		}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index 124b237..8cd79dc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -141,7 +141,7 @@ int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev)
 				     PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
 				     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 				     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-				     NULL, NULL, &adev->gart.robj);
+				     NULL, NULL, 0, &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 917ac5e..db5ff06 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -59,7 +59,7 @@ 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, NULL, &robj);
+			     flags, NULL, NULL, 0, &robj);
 	if (r) {
 		if (r != -ERESTARTSYS) {
 			if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index 3ec43cf..5b44043 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -244,7 +244,7 @@ int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
 	r = amdgpu_bo_create(adev, size, align, true, domain,
 			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-			     NULL, NULL, bo_ptr);
+			     NULL, NULL, 0, bo_ptr);
 	if (r) {
 		dev_err(adev->dev, "(%d) failed to allocate kernel bo\n", r);
 		return r;
@@ -318,6 +318,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
 				struct sg_table *sg,
 				struct ttm_placement *placement,
 				struct reservation_object *resv,
+				uint64_t init_value,
 				struct amdgpu_bo **bo_ptr)
 {
 	struct amdgpu_bo *bo;
@@ -418,7 +419,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
 	    bo->tbo.mem.placement & TTM_PL_FLAG_VRAM) {
 		struct dma_fence *fence;
 
-		r = amdgpu_fill_buffer(bo, 0, bo->tbo.resv, &fence);
+		r = amdgpu_fill_buffer(bo, init_value, bo->tbo.resv, &fence);
 		if (unlikely(r))
 			goto fail_unreserve;
 
@@ -470,6 +471,7 @@ static int amdgpu_bo_create_shadow(struct amdgpu_device *adev,
 					AMDGPU_GEM_CREATE_CPU_GTT_USWC,
 					NULL, &placement,
 					bo->tbo.resv,
+					0,
 					&bo->shadow);
 	if (!r) {
 		bo->shadow->parent = amdgpu_bo_ref(bo);
@@ -481,11 +483,15 @@ static int amdgpu_bo_create_shadow(struct amdgpu_device *adev,
 	return r;
 }
 
+/* init_value will only take effect when flags contains
+ * AMDGPU_GEM_CREATE_VRAM_CLEARED.
+ */
 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,
+		     uint64_t init_value,
 		     struct amdgpu_bo **bo_ptr)
 {
 	struct ttm_placement placement = {0};
@@ -500,7 +506,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
 
 	r = amdgpu_bo_create_restricted(adev, size, byte_align, kernel,
 					domain, flags, sg, &placement,
-					resv, bo_ptr);
+					resv, init_value, bo_ptr);
 	if (r)
 		return r;
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
index 833b172..59b1f6d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
@@ -132,6 +132,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
 			    bool kernel, u32 domain, u64 flags,
 			    struct sg_table *sg,
 			    struct reservation_object *resv,
+			    uint64_t init_value,
 			    struct amdgpu_bo **bo_ptr);
 int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
 				unsigned long size, int byte_align,
@@ -139,6 +140,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
 				struct sg_table *sg,
 				struct ttm_placement *placement,
 			        struct reservation_object *resv,
+				uint64_t init_value,
 				struct amdgpu_bo **bo_ptr);
 int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
 			    unsigned long size, int align,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
index 6bdc866..5b3f928 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
@@ -69,7 +69,7 @@ amdgpu_gem_prime_import_sg_table(struct drm_device *dev,
 
 	ww_mutex_lock(&resv->lock, NULL);
 	ret = amdgpu_bo_create(adev, attach->dmabuf->size, PAGE_SIZE, false,
-			       AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, &bo);
+			       AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, 0, &bo);
 	ww_mutex_unlock(&resv->lock);
 	if (ret)
 		return ERR_PTR(ret);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
index 5ca75a4..3144400 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
@@ -64,7 +64,7 @@ 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, NULL, &sa_manager->bo);
+			     0, NULL, NULL, 0, &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 3c4d757..ed8c373 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
@@ -61,7 +61,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
 
 	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
 			     AMDGPU_GEM_DOMAIN_VRAM, 0,
-			     NULL, NULL, &vram_obj);
+			     NULL, NULL, 0, &vram_obj);
 	if (r) {
 		DRM_ERROR("Failed to create VRAM object\n");
 		goto out_cleanup;
@@ -82,7 +82,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
 
 		r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
 				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL,
-				     NULL, gtt_obj + i);
+				     NULL, 0, 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 d6206bc..ac1d09e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1236,7 +1236,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
 			     AMDGPU_GEM_DOMAIN_VRAM,
 			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-			     NULL, NULL, &adev->stollen_vga_memory);
+			     NULL, NULL, 0, &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 fcfb9d4..d3468a2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
@@ -381,7 +381,7 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
 	err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true,
 				amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
 				AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-				NULL, NULL, bo);
+				NULL, NULL, 0, bo);
 	if (err) {
 		dev_err(adev->dev, "(%d) Firmware buffer allocate failed\n", err);
 		goto failed;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
index 2ca09f1..aefecf6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
@@ -1051,7 +1051,7 @@ int amdgpu_uvd_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
 			     AMDGPU_GEM_DOMAIN_VRAM,
 			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-			     NULL, NULL, &bo);
+			     NULL, NULL, 0, &bo);
 	if (r)
 		return r;
 
@@ -1101,7 +1101,7 @@ int amdgpu_uvd_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
 			     AMDGPU_GEM_DOMAIN_VRAM,
 			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-			     NULL, NULL, &bo);
+			     NULL, NULL, 0, &bo);
 	if (r)
 		return r;
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index d58ca82..041e012 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -359,7 +359,7 @@ static int amdgpu_vcn_dec_get_create_msg(struct amdgpu_ring *ring, uint32_t hand
 			     AMDGPU_GEM_DOMAIN_VRAM,
 			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-			     NULL, NULL, &bo);
+			     NULL, NULL, 0, &bo);
 	if (r)
 		return r;
 
@@ -411,7 +411,7 @@ static int amdgpu_vcn_dec_get_destroy_msg(struct amdgpu_ring *ring, uint32_t han
 			     AMDGPU_GEM_DOMAIN_VRAM,
 			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-			     NULL, NULL, &bo);
+			     NULL, NULL, 0, &bo);
 	if (r)
 		return r;
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index fc482cc4..9325f39 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -332,7 +332,7 @@ static int amdgpu_vm_alloc_levels(struct amdgpu_device *adev,
 					     AMDGPU_GPU_PAGE_SIZE, true,
 					     AMDGPU_GEM_DOMAIN_VRAM,
 					     flags,
-					     NULL, resv, &pt);
+					     NULL, resv, 0, &pt);
 			if (r)
 				return r;
 
@@ -2537,7 +2537,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
 	r = amdgpu_bo_create(adev, amdgpu_vm_bo_size(adev, 0), align, true,
 			     AMDGPU_GEM_DOMAIN_VRAM,
 			     flags,
-			     NULL, NULL, &vm->root.bo);
+			     NULL, NULL, 0, &vm->root.bo);
 	if (r)
 		goto error_free_sched_entity;
 
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
index 4ac85f4..b607154 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
@@ -2277,7 +2277,7 @@ static int gfx_v6_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, NULL,
+					     NULL, NULL, 0,
 					     &adev->gfx.rlc.save_restore_obj);
 
 			if (r) {
@@ -2324,7 +2324,7 @@ static int gfx_v6_0_rlc_init(struct amdgpu_device *adev)
 					     AMDGPU_GEM_DOMAIN_VRAM,
 					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED,
 					     NULL, NULL,
-					     &adev->gfx.rlc.clear_state_obj);
+					     0, &adev->gfx.rlc.clear_state_obj);
 
 			if (r) {
 				dev_warn(adev->dev, "(%d) create RLC c bo failed\n", r);
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index 42b932c..f0d47cb 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -2828,7 +2828,7 @@ static int gfx_v7_0_mec_init(struct amdgpu_device *adev)
 				     mec_hpd_size,
 				     PAGE_SIZE, true,
 				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
-				     &adev->gfx.mec.hpd_eop_obj);
+				     0, &adev->gfx.mec.hpd_eop_obj);
 		if (r) {
 			dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
 			return r;
@@ -3113,7 +3113,7 @@ static int gfx_v7_0_compute_queue_init(struct amdgpu_device *adev, int ring_id)
 				sizeof(struct cik_mqd),
 				PAGE_SIZE, true,
 				AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
-				&ring->mqd_obj);
+				0, &ring->mqd_obj);
 		if (r) {
 			dev_warn(adev->dev, "(%d) create MQD bo failed\n", r);
 			return r;
@@ -3437,7 +3437,7 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
 					     AMDGPU_GEM_DOMAIN_VRAM,
 					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-					     NULL, NULL,
+					     NULL, NULL, 0,
 					     &adev->gfx.rlc.save_restore_obj);
 			if (r) {
 				dev_warn(adev->dev, "(%d) create RLC sr bo failed\n", r);
@@ -3483,7 +3483,7 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
 					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
 					     NULL, NULL,
-					     &adev->gfx.rlc.clear_state_obj);
+					     0, &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);
@@ -3524,7 +3524,7 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
 					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
 					     NULL, NULL,
-					     &adev->gfx.rlc.cp_table_obj);
+					     0, &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);
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index b58d98d..5a10552 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -1284,7 +1284,7 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
 					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
 					     NULL, NULL,
-					     &adev->gfx.rlc.clear_state_obj);
+					     0, &adev->gfx.rlc.clear_state_obj);
 			if (r) {
 				dev_warn(adev->dev, "(%d) create RLC c bo failed\n", r);
 				gfx_v8_0_rlc_fini(adev);
@@ -1327,7 +1327,7 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
 					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
 					     NULL, NULL,
-					     &adev->gfx.rlc.cp_table_obj);
+					     0, &adev->gfx.rlc.cp_table_obj);
 			if (r) {
 				dev_warn(adev->dev, "(%d) create RLC cp table bo failed\n", r);
 				return r;
@@ -1394,7 +1394,7 @@ static int gfx_v8_0_mec_init(struct amdgpu_device *adev)
 				     mec_hpd_size,
 				     PAGE_SIZE, true,
 				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
-				     &adev->gfx.mec.hpd_eop_obj);
+				     0, &adev->gfx.mec.hpd_eop_obj);
 		if (r) {
 			dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
 			return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index 4d7f042..500318d 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -867,7 +867,7 @@ static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
 				     mec_hpd_size,
 				     PAGE_SIZE, true,
 				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
-				     &adev->gfx.mec.hpd_eop_obj);
+				     0, &adev->gfx.mec.hpd_eop_obj);
 		if (r) {
 			dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
 			return r;
@@ -910,7 +910,7 @@ static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
 			mec_hdr->header.ucode_size_bytes,
 			PAGE_SIZE, true,
 			AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
-			&adev->gfx.mec.mec_fw_obj);
+			0, &adev->gfx.mec.mec_fw_obj);
 		if (r) {
 			dev_warn(adev->dev, "(%d) create mec firmware bo failed\n", r);
 			return r;
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: Add a parameter to amdgpu_bo_create()
       [not found] ` <1501184886-2450-1-git-send-email-Yong.Zhao-5C7GfCeVMHo@public.gmane.org>
@ 2017-07-28  9:01   ` Christian König
       [not found]     ` <2e8598b7-5382-3800-8502-68d69fe75b3a-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Christian König @ 2017-07-28  9:01 UTC (permalink / raw)
  To: Yong Zhao, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Am 27.07.2017 um 21:48 schrieb Yong Zhao:
> The parameter init_value contains the value to which we initialized
> VRAM bo when AMDGPU_GEM_CREATE_VRAM_CLEARED flag is set.
>
> Change-Id: I9ef3b9dd3ca9b98cc25dd2eaff68fbe1129c3e3c
> Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>

I'm about to push a cleanup which removes a bunch of references to 
amdgpu_bo_create(), so don't be surprised when you need to rebase your 
patch once more before pushing.

The patch is Reviewed-by: Christian König <christian.koenig@amd.com> and 
that rebase should only require you to remove changes, so feel free to 
push it after the rebase.

Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |  3 ++-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c       |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c      |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c       |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    | 12 +++++++++---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h    |  2 ++
>   drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c     |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c        |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_test.c      |  4 ++--
>   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       |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c       |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c         |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c         | 10 +++++-----
>   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c         |  6 +++---
>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c         |  4 ++--
>   20 files changed, 43 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> index 2292c77..6d2bd80 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> @@ -185,7 +185,8 @@ int alloc_gtt_mem(struct kgd_dev *kgd, size_t size,
>   		return -ENOMEM;
>   
>   	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_GTT,
> -			     AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, &(*mem)->bo);
> +			     AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, 0,
> +			     &(*mem)->bo);
>   	if (r) {
>   		dev_err(adev->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 2fb299a..63ec1e1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c
> @@ -81,7 +81,7 @@ static void amdgpu_benchmark_move(struct amdgpu_device *adev, unsigned size,
>   
>   	n = AMDGPU_BENCHMARK_ITERATIONS;
>   	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, sdomain, 0, NULL,
> -			     NULL, &sobj);
> +			     NULL, 0, &sobj);
>   	if (r) {
>   		goto out_cleanup;
>   	}
> @@ -94,7 +94,7 @@ static void amdgpu_benchmark_move(struct amdgpu_device *adev, unsigned size,
>   		goto out_cleanup;
>   	}
>   	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, ddomain, 0, NULL,
> -			     NULL, &dobj);
> +			     NULL, 0, &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 3d41cd4..343cdf9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> @@ -124,7 +124,7 @@ static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
>   	ret = amdgpu_bo_create_restricted(adev, size, PAGE_SIZE,
>   					  true, domain, flags,
>   					  NULL, &placement, NULL,
> -					  &obj);
> +					  0, &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 fe6783e..cf81f9d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -344,7 +344,7 @@ static int amdgpu_vram_scratch_init(struct amdgpu_device *adev)
>   				     PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
>   				     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   				     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -				     NULL, NULL, &adev->vram_scratch.robj);
> +				     NULL, NULL, 0, &adev->vram_scratch.robj);
>   		if (r) {
>   			return r;
>   		}
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> index 124b237..8cd79dc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> @@ -141,7 +141,7 @@ int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev)
>   				     PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
>   				     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   				     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -				     NULL, NULL, &adev->gart.robj);
> +				     NULL, NULL, 0, &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 917ac5e..db5ff06 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -59,7 +59,7 @@ 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, NULL, &robj);
> +			     flags, NULL, NULL, 0, &robj);
>   	if (r) {
>   		if (r != -ERESTARTSYS) {
>   			if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index 3ec43cf..5b44043 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -244,7 +244,7 @@ int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
>   	r = amdgpu_bo_create(adev, size, align, true, domain,
>   			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -			     NULL, NULL, bo_ptr);
> +			     NULL, NULL, 0, bo_ptr);
>   	if (r) {
>   		dev_err(adev->dev, "(%d) failed to allocate kernel bo\n", r);
>   		return r;
> @@ -318,6 +318,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
>   				struct sg_table *sg,
>   				struct ttm_placement *placement,
>   				struct reservation_object *resv,
> +				uint64_t init_value,
>   				struct amdgpu_bo **bo_ptr)
>   {
>   	struct amdgpu_bo *bo;
> @@ -418,7 +419,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
>   	    bo->tbo.mem.placement & TTM_PL_FLAG_VRAM) {
>   		struct dma_fence *fence;
>   
> -		r = amdgpu_fill_buffer(bo, 0, bo->tbo.resv, &fence);
> +		r = amdgpu_fill_buffer(bo, init_value, bo->tbo.resv, &fence);
>   		if (unlikely(r))
>   			goto fail_unreserve;
>   
> @@ -470,6 +471,7 @@ static int amdgpu_bo_create_shadow(struct amdgpu_device *adev,
>   					AMDGPU_GEM_CREATE_CPU_GTT_USWC,
>   					NULL, &placement,
>   					bo->tbo.resv,
> +					0,
>   					&bo->shadow);
>   	if (!r) {
>   		bo->shadow->parent = amdgpu_bo_ref(bo);
> @@ -481,11 +483,15 @@ static int amdgpu_bo_create_shadow(struct amdgpu_device *adev,
>   	return r;
>   }
>   
> +/* init_value will only take effect when flags contains
> + * AMDGPU_GEM_CREATE_VRAM_CLEARED.
> + */
>   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,
> +		     uint64_t init_value,
>   		     struct amdgpu_bo **bo_ptr)
>   {
>   	struct ttm_placement placement = {0};
> @@ -500,7 +506,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
>   
>   	r = amdgpu_bo_create_restricted(adev, size, byte_align, kernel,
>   					domain, flags, sg, &placement,
> -					resv, bo_ptr);
> +					resv, init_value, bo_ptr);
>   	if (r)
>   		return r;
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> index 833b172..59b1f6d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> @@ -132,6 +132,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
>   			    bool kernel, u32 domain, u64 flags,
>   			    struct sg_table *sg,
>   			    struct reservation_object *resv,
> +			    uint64_t init_value,
>   			    struct amdgpu_bo **bo_ptr);
>   int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
>   				unsigned long size, int byte_align,
> @@ -139,6 +140,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
>   				struct sg_table *sg,
>   				struct ttm_placement *placement,
>   			        struct reservation_object *resv,
> +				uint64_t init_value,
>   				struct amdgpu_bo **bo_ptr);
>   int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
>   			    unsigned long size, int align,
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
> index 6bdc866..5b3f928 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
> @@ -69,7 +69,7 @@ amdgpu_gem_prime_import_sg_table(struct drm_device *dev,
>   
>   	ww_mutex_lock(&resv->lock, NULL);
>   	ret = amdgpu_bo_create(adev, attach->dmabuf->size, PAGE_SIZE, false,
> -			       AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, &bo);
> +			       AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, 0, &bo);
>   	ww_mutex_unlock(&resv->lock);
>   	if (ret)
>   		return ERR_PTR(ret);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
> index 5ca75a4..3144400 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
> @@ -64,7 +64,7 @@ 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, NULL, &sa_manager->bo);
> +			     0, NULL, NULL, 0, &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 3c4d757..ed8c373 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
> @@ -61,7 +61,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
>   
>   	r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
>   			     AMDGPU_GEM_DOMAIN_VRAM, 0,
> -			     NULL, NULL, &vram_obj);
> +			     NULL, NULL, 0, &vram_obj);
>   	if (r) {
>   		DRM_ERROR("Failed to create VRAM object\n");
>   		goto out_cleanup;
> @@ -82,7 +82,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
>   
>   		r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
>   				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL,
> -				     NULL, gtt_obj + i);
> +				     NULL, 0, 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 d6206bc..ac1d09e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1236,7 +1236,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
>   			     AMDGPU_GEM_DOMAIN_VRAM,
>   			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -			     NULL, NULL, &adev->stollen_vga_memory);
> +			     NULL, NULL, 0, &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 fcfb9d4..d3468a2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
> @@ -381,7 +381,7 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
>   	err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, true,
>   				amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
>   				AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -				NULL, NULL, bo);
> +				NULL, NULL, 0, bo);
>   	if (err) {
>   		dev_err(adev->dev, "(%d) Firmware buffer allocate failed\n", err);
>   		goto failed;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> index 2ca09f1..aefecf6 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> @@ -1051,7 +1051,7 @@ int amdgpu_uvd_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
>   			     AMDGPU_GEM_DOMAIN_VRAM,
>   			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -			     NULL, NULL, &bo);
> +			     NULL, NULL, 0, &bo);
>   	if (r)
>   		return r;
>   
> @@ -1101,7 +1101,7 @@ int amdgpu_uvd_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
>   			     AMDGPU_GEM_DOMAIN_VRAM,
>   			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -			     NULL, NULL, &bo);
> +			     NULL, NULL, 0, &bo);
>   	if (r)
>   		return r;
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> index d58ca82..041e012 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> @@ -359,7 +359,7 @@ static int amdgpu_vcn_dec_get_create_msg(struct amdgpu_ring *ring, uint32_t hand
>   			     AMDGPU_GEM_DOMAIN_VRAM,
>   			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -			     NULL, NULL, &bo);
> +			     NULL, NULL, 0, &bo);
>   	if (r)
>   		return r;
>   
> @@ -411,7 +411,7 @@ static int amdgpu_vcn_dec_get_destroy_msg(struct amdgpu_ring *ring, uint32_t han
>   			     AMDGPU_GEM_DOMAIN_VRAM,
>   			     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   			     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -			     NULL, NULL, &bo);
> +			     NULL, NULL, 0, &bo);
>   	if (r)
>   		return r;
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index fc482cc4..9325f39 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -332,7 +332,7 @@ static int amdgpu_vm_alloc_levels(struct amdgpu_device *adev,
>   					     AMDGPU_GPU_PAGE_SIZE, true,
>   					     AMDGPU_GEM_DOMAIN_VRAM,
>   					     flags,
> -					     NULL, resv, &pt);
> +					     NULL, resv, 0, &pt);
>   			if (r)
>   				return r;
>   
> @@ -2537,7 +2537,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
>   	r = amdgpu_bo_create(adev, amdgpu_vm_bo_size(adev, 0), align, true,
>   			     AMDGPU_GEM_DOMAIN_VRAM,
>   			     flags,
> -			     NULL, NULL, &vm->root.bo);
> +			     NULL, NULL, 0, &vm->root.bo);
>   	if (r)
>   		goto error_free_sched_entity;
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> index 4ac85f4..b607154 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> @@ -2277,7 +2277,7 @@ static int gfx_v6_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, NULL,
> +					     NULL, NULL, 0,
>   					     &adev->gfx.rlc.save_restore_obj);
>   
>   			if (r) {
> @@ -2324,7 +2324,7 @@ static int gfx_v6_0_rlc_init(struct amdgpu_device *adev)
>   					     AMDGPU_GEM_DOMAIN_VRAM,
>   					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED,
>   					     NULL, NULL,
> -					     &adev->gfx.rlc.clear_state_obj);
> +					     0, &adev->gfx.rlc.clear_state_obj);
>   
>   			if (r) {
>   				dev_warn(adev->dev, "(%d) create RLC c bo failed\n", r);
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> index 42b932c..f0d47cb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> @@ -2828,7 +2828,7 @@ static int gfx_v7_0_mec_init(struct amdgpu_device *adev)
>   				     mec_hpd_size,
>   				     PAGE_SIZE, true,
>   				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
> -				     &adev->gfx.mec.hpd_eop_obj);
> +				     0, &adev->gfx.mec.hpd_eop_obj);
>   		if (r) {
>   			dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
>   			return r;
> @@ -3113,7 +3113,7 @@ static int gfx_v7_0_compute_queue_init(struct amdgpu_device *adev, int ring_id)
>   				sizeof(struct cik_mqd),
>   				PAGE_SIZE, true,
>   				AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
> -				&ring->mqd_obj);
> +				0, &ring->mqd_obj);
>   		if (r) {
>   			dev_warn(adev->dev, "(%d) create MQD bo failed\n", r);
>   			return r;
> @@ -3437,7 +3437,7 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
>   					     AMDGPU_GEM_DOMAIN_VRAM,
>   					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
> -					     NULL, NULL,
> +					     NULL, NULL, 0,
>   					     &adev->gfx.rlc.save_restore_obj);
>   			if (r) {
>   				dev_warn(adev->dev, "(%d) create RLC sr bo failed\n", r);
> @@ -3483,7 +3483,7 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
>   					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>   					     NULL, NULL,
> -					     &adev->gfx.rlc.clear_state_obj);
> +					     0, &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);
> @@ -3524,7 +3524,7 @@ static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
>   					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>   					     NULL, NULL,
> -					     &adev->gfx.rlc.cp_table_obj);
> +					     0, &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);
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> index b58d98d..5a10552 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> @@ -1284,7 +1284,7 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
>   					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>   					     NULL, NULL,
> -					     &adev->gfx.rlc.clear_state_obj);
> +					     0, &adev->gfx.rlc.clear_state_obj);
>   			if (r) {
>   				dev_warn(adev->dev, "(%d) create RLC c bo failed\n", r);
>   				gfx_v8_0_rlc_fini(adev);
> @@ -1327,7 +1327,7 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
>   					     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>   					     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>   					     NULL, NULL,
> -					     &adev->gfx.rlc.cp_table_obj);
> +					     0, &adev->gfx.rlc.cp_table_obj);
>   			if (r) {
>   				dev_warn(adev->dev, "(%d) create RLC cp table bo failed\n", r);
>   				return r;
> @@ -1394,7 +1394,7 @@ static int gfx_v8_0_mec_init(struct amdgpu_device *adev)
>   				     mec_hpd_size,
>   				     PAGE_SIZE, true,
>   				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
> -				     &adev->gfx.mec.hpd_eop_obj);
> +				     0, &adev->gfx.mec.hpd_eop_obj);
>   		if (r) {
>   			dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
>   			return r;
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index 4d7f042..500318d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -867,7 +867,7 @@ static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
>   				     mec_hpd_size,
>   				     PAGE_SIZE, true,
>   				     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
> -				     &adev->gfx.mec.hpd_eop_obj);
> +				     0, &adev->gfx.mec.hpd_eop_obj);
>   		if (r) {
>   			dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
>   			return r;
> @@ -910,7 +910,7 @@ static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
>   			mec_hdr->header.ucode_size_bytes,
>   			PAGE_SIZE, true,
>   			AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
> -			&adev->gfx.mec.mec_fw_obj);
> +			0, &adev->gfx.mec.mec_fw_obj);
>   		if (r) {
>   			dev_warn(adev->dev, "(%d) create mec firmware bo failed\n", r);
>   			return r;


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] drm/amdgpu: Add a parameter to amdgpu_bo_create()
       [not found]     ` <2e8598b7-5382-3800-8502-68d69fe75b3a-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
@ 2017-07-28 14:51       ` Yong Zhao
  0 siblings, 0 replies; 3+ messages in thread
From: Yong Zhao @ 2017-07-28 14:51 UTC (permalink / raw)
  To: Christian König, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Got it.


On 2017-07-28 05:01 AM, Christian König wrote:
> Am 27.07.2017 um 21:48 schrieb Yong Zhao:
>> The parameter init_value contains the value to which we initialized
>> VRAM bo when AMDGPU_GEM_CREATE_VRAM_CLEARED flag is set.
>>
>> Change-Id: I9ef3b9dd3ca9b98cc25dd2eaff68fbe1129c3e3c
>> Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
>
> I'm about to push a cleanup which removes a bunch of references to 
> amdgpu_bo_create(), so don't be surprised when you need to rebase your 
> patch once more before pushing.
>
> The patch is Reviewed-by: Christian König <christian.koenig@amd.com> 
> and that rebase should only require you to remove changes, so feel 
> free to push it after the rebase.
>
> Christian.
>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |  3 ++-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c       |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c      |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c       |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    | 12 +++++++++---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h    |  2 ++
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c     |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c        |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_test.c      |  4 ++--
>>   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       |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c       |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c         |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c         | 10 +++++-----
>>   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c         |  6 +++---
>>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c         |  4 ++--
>>   20 files changed, 43 insertions(+), 34 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
>> index 2292c77..6d2bd80 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
>> @@ -185,7 +185,8 @@ int alloc_gtt_mem(struct kgd_dev *kgd, size_t size,
>>           return -ENOMEM;
>>         r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, 
>> AMDGPU_GEM_DOMAIN_GTT,
>> -                 AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, 
>> &(*mem)->bo);
>> +                 AMDGPU_GEM_CREATE_CPU_GTT_USWC, NULL, NULL, 0,
>> +                 &(*mem)->bo);
>>       if (r) {
>>           dev_err(adev->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 2fb299a..63ec1e1 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c
>> @@ -81,7 +81,7 @@ static void amdgpu_benchmark_move(struct 
>> amdgpu_device *adev, unsigned size,
>>         n = AMDGPU_BENCHMARK_ITERATIONS;
>>       r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, sdomain, 0, 
>> NULL,
>> -                 NULL, &sobj);
>> +                 NULL, 0, &sobj);
>>       if (r) {
>>           goto out_cleanup;
>>       }
>> @@ -94,7 +94,7 @@ static void amdgpu_benchmark_move(struct 
>> amdgpu_device *adev, unsigned size,
>>           goto out_cleanup;
>>       }
>>       r = amdgpu_bo_create(adev, size, PAGE_SIZE, true, ddomain, 0, 
>> NULL,
>> -                 NULL, &dobj);
>> +                 NULL, 0, &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 3d41cd4..343cdf9 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> @@ -124,7 +124,7 @@ static int amdgpu_cgs_alloc_gpu_mem(struct 
>> cgs_device *cgs_device,
>>       ret = amdgpu_bo_create_restricted(adev, size, PAGE_SIZE,
>>                         true, domain, flags,
>>                         NULL, &placement, NULL,
>> -                      &obj);
>> +                      0, &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 fe6783e..cf81f9d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -344,7 +344,7 @@ static int amdgpu_vram_scratch_init(struct 
>> amdgpu_device *adev)
>>                        PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
>>                        AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                        AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                     NULL, NULL, &adev->vram_scratch.robj);
>> +                     NULL, NULL, 0, &adev->vram_scratch.robj);
>>           if (r) {
>>               return r;
>>           }
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
>> index 124b237..8cd79dc 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
>> @@ -141,7 +141,7 @@ int amdgpu_gart_table_vram_alloc(struct 
>> amdgpu_device *adev)
>>                        PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM,
>>                        AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                        AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                     NULL, NULL, &adev->gart.robj);
>> +                     NULL, NULL, 0, &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 917ac5e..db5ff06 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
>> @@ -59,7 +59,7 @@ 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, NULL, &robj);
>> +                 flags, NULL, NULL, 0, &robj);
>>       if (r) {
>>           if (r != -ERESTARTSYS) {
>>               if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) {
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> index 3ec43cf..5b44043 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> @@ -244,7 +244,7 @@ int amdgpu_bo_create_kernel(struct amdgpu_device 
>> *adev,
>>       r = amdgpu_bo_create(adev, size, align, true, domain,
>>                    AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                    AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                 NULL, NULL, bo_ptr);
>> +                 NULL, NULL, 0, bo_ptr);
>>       if (r) {
>>           dev_err(adev->dev, "(%d) failed to allocate kernel bo\n", r);
>>           return r;
>> @@ -318,6 +318,7 @@ int amdgpu_bo_create_restricted(struct 
>> amdgpu_device *adev,
>>                   struct sg_table *sg,
>>                   struct ttm_placement *placement,
>>                   struct reservation_object *resv,
>> +                uint64_t init_value,
>>                   struct amdgpu_bo **bo_ptr)
>>   {
>>       struct amdgpu_bo *bo;
>> @@ -418,7 +419,7 @@ int amdgpu_bo_create_restricted(struct 
>> amdgpu_device *adev,
>>           bo->tbo.mem.placement & TTM_PL_FLAG_VRAM) {
>>           struct dma_fence *fence;
>>   -        r = amdgpu_fill_buffer(bo, 0, bo->tbo.resv, &fence);
>> +        r = amdgpu_fill_buffer(bo, init_value, bo->tbo.resv, &fence);
>>           if (unlikely(r))
>>               goto fail_unreserve;
>>   @@ -470,6 +471,7 @@ static int amdgpu_bo_create_shadow(struct 
>> amdgpu_device *adev,
>>                       AMDGPU_GEM_CREATE_CPU_GTT_USWC,
>>                       NULL, &placement,
>>                       bo->tbo.resv,
>> +                    0,
>>                       &bo->shadow);
>>       if (!r) {
>>           bo->shadow->parent = amdgpu_bo_ref(bo);
>> @@ -481,11 +483,15 @@ static int amdgpu_bo_create_shadow(struct 
>> amdgpu_device *adev,
>>       return r;
>>   }
>>   +/* init_value will only take effect when flags contains
>> + * AMDGPU_GEM_CREATE_VRAM_CLEARED.
>> + */
>>   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,
>> +             uint64_t init_value,
>>                struct amdgpu_bo **bo_ptr)
>>   {
>>       struct ttm_placement placement = {0};
>> @@ -500,7 +506,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
>>         r = amdgpu_bo_create_restricted(adev, size, byte_align, kernel,
>>                       domain, flags, sg, &placement,
>> -                    resv, bo_ptr);
>> +                    resv, init_value, bo_ptr);
>>       if (r)
>>           return r;
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
>> index 833b172..59b1f6d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
>> @@ -132,6 +132,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
>>                   bool kernel, u32 domain, u64 flags,
>>                   struct sg_table *sg,
>>                   struct reservation_object *resv,
>> +                uint64_t init_value,
>>                   struct amdgpu_bo **bo_ptr);
>>   int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
>>                   unsigned long size, int byte_align,
>> @@ -139,6 +140,7 @@ int amdgpu_bo_create_restricted(struct 
>> amdgpu_device *adev,
>>                   struct sg_table *sg,
>>                   struct ttm_placement *placement,
>>                       struct reservation_object *resv,
>> +                uint64_t init_value,
>>                   struct amdgpu_bo **bo_ptr);
>>   int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
>>                   unsigned long size, int align,
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>> index 6bdc866..5b3f928 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>> @@ -69,7 +69,7 @@ amdgpu_gem_prime_import_sg_table(struct drm_device 
>> *dev,
>>         ww_mutex_lock(&resv->lock, NULL);
>>       ret = amdgpu_bo_create(adev, attach->dmabuf->size, PAGE_SIZE, 
>> false,
>> -                   AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, &bo);
>> +                   AMDGPU_GEM_DOMAIN_GTT, 0, sg, resv, 0, &bo);
>>       ww_mutex_unlock(&resv->lock);
>>       if (ret)
>>           return ERR_PTR(ret);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
>> index 5ca75a4..3144400 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c
>> @@ -64,7 +64,7 @@ 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, NULL, &sa_manager->bo);
>> +                 0, NULL, NULL, 0, &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 3c4d757..ed8c373 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
>> @@ -61,7 +61,7 @@ static void amdgpu_do_test_moves(struct 
>> amdgpu_device *adev)
>>         r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
>>                    AMDGPU_GEM_DOMAIN_VRAM, 0,
>> -                 NULL, NULL, &vram_obj);
>> +                 NULL, NULL, 0, &vram_obj);
>>       if (r) {
>>           DRM_ERROR("Failed to create VRAM object\n");
>>           goto out_cleanup;
>> @@ -82,7 +82,7 @@ static void amdgpu_do_test_moves(struct 
>> amdgpu_device *adev)
>>             r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
>>                        AMDGPU_GEM_DOMAIN_GTT, 0, NULL,
>> -                     NULL, gtt_obj + i);
>> +                     NULL, 0, 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 d6206bc..ac1d09e 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> @@ -1236,7 +1236,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
>>                    AMDGPU_GEM_DOMAIN_VRAM,
>>                    AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                    AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                 NULL, NULL, &adev->stollen_vga_memory);
>> +                 NULL, NULL, 0, &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 fcfb9d4..d3468a2 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
>> @@ -381,7 +381,7 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
>>       err = amdgpu_bo_create(adev, adev->firmware.fw_size, PAGE_SIZE, 
>> true,
>>                   amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : 
>> AMDGPU_GEM_DOMAIN_GTT,
>>                   AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                NULL, NULL, bo);
>> +                NULL, NULL, 0, bo);
>>       if (err) {
>>           dev_err(adev->dev, "(%d) Firmware buffer allocate 
>> failed\n", err);
>>           goto failed;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> index 2ca09f1..aefecf6 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> @@ -1051,7 +1051,7 @@ int amdgpu_uvd_get_create_msg(struct 
>> amdgpu_ring *ring, uint32_t handle,
>>                    AMDGPU_GEM_DOMAIN_VRAM,
>>                    AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                    AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                 NULL, NULL, &bo);
>> +                 NULL, NULL, 0, &bo);
>>       if (r)
>>           return r;
>>   @@ -1101,7 +1101,7 @@ int amdgpu_uvd_get_destroy_msg(struct 
>> amdgpu_ring *ring, uint32_t handle,
>>                    AMDGPU_GEM_DOMAIN_VRAM,
>>                    AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                    AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                 NULL, NULL, &bo);
>> +                 NULL, NULL, 0, &bo);
>>       if (r)
>>           return r;
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
>> index d58ca82..041e012 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
>> @@ -359,7 +359,7 @@ static int amdgpu_vcn_dec_get_create_msg(struct 
>> amdgpu_ring *ring, uint32_t hand
>>                    AMDGPU_GEM_DOMAIN_VRAM,
>>                    AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                    AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                 NULL, NULL, &bo);
>> +                 NULL, NULL, 0, &bo);
>>       if (r)
>>           return r;
>>   @@ -411,7 +411,7 @@ static int 
>> amdgpu_vcn_dec_get_destroy_msg(struct amdgpu_ring *ring, uint32_t han
>>                    AMDGPU_GEM_DOMAIN_VRAM,
>>                    AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                    AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                 NULL, NULL, &bo);
>> +                 NULL, NULL, 0, &bo);
>>       if (r)
>>           return r;
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> index fc482cc4..9325f39 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> @@ -332,7 +332,7 @@ static int amdgpu_vm_alloc_levels(struct 
>> amdgpu_device *adev,
>>                            AMDGPU_GPU_PAGE_SIZE, true,
>>                            AMDGPU_GEM_DOMAIN_VRAM,
>>                            flags,
>> -                         NULL, resv, &pt);
>> +                         NULL, resv, 0, &pt);
>>               if (r)
>>                   return r;
>>   @@ -2537,7 +2537,7 @@ int amdgpu_vm_init(struct amdgpu_device 
>> *adev, struct amdgpu_vm *vm,
>>       r = amdgpu_bo_create(adev, amdgpu_vm_bo_size(adev, 0), align, 
>> true,
>>                    AMDGPU_GEM_DOMAIN_VRAM,
>>                    flags,
>> -                 NULL, NULL, &vm->root.bo);
>> +                 NULL, NULL, 0, &vm->root.bo);
>>       if (r)
>>           goto error_free_sched_entity;
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
>> index 4ac85f4..b607154 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
>> @@ -2277,7 +2277,7 @@ static int gfx_v6_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, NULL,
>> +                         NULL, NULL, 0,
>> &adev->gfx.rlc.save_restore_obj);
>>                 if (r) {
>> @@ -2324,7 +2324,7 @@ static int gfx_v6_0_rlc_init(struct 
>> amdgpu_device *adev)
>>                            AMDGPU_GEM_DOMAIN_VRAM,
>> AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED,
>>                            NULL, NULL,
>> - &adev->gfx.rlc.clear_state_obj);
>> +                         0, &adev->gfx.rlc.clear_state_obj);
>>                 if (r) {
>>                   dev_warn(adev->dev, "(%d) create RLC c bo 
>> failed\n", r);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> index 42b932c..f0d47cb 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> @@ -2828,7 +2828,7 @@ static int gfx_v7_0_mec_init(struct 
>> amdgpu_device *adev)
>>                        mec_hpd_size,
>>                        PAGE_SIZE, true,
>>                        AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
>> -                     &adev->gfx.mec.hpd_eop_obj);
>> +                     0, &adev->gfx.mec.hpd_eop_obj);
>>           if (r) {
>>               dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
>>               return r;
>> @@ -3113,7 +3113,7 @@ static int gfx_v7_0_compute_queue_init(struct 
>> amdgpu_device *adev, int ring_id)
>>                   sizeof(struct cik_mqd),
>>                   PAGE_SIZE, true,
>>                   AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
>> -                &ring->mqd_obj);
>> +                0, &ring->mqd_obj);
>>           if (r) {
>>               dev_warn(adev->dev, "(%d) create MQD bo failed\n", r);
>>               return r;
>> @@ -3437,7 +3437,7 @@ static int gfx_v7_0_rlc_init(struct 
>> amdgpu_device *adev)
>>                            AMDGPU_GEM_DOMAIN_VRAM,
>>                            AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                            AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>> -                         NULL, NULL,
>> +                         NULL, NULL, 0,
>> &adev->gfx.rlc.save_restore_obj);
>>               if (r) {
>>                   dev_warn(adev->dev, "(%d) create RLC sr bo 
>> failed\n", r);
>> @@ -3483,7 +3483,7 @@ static int gfx_v7_0_rlc_init(struct 
>> amdgpu_device *adev)
>>                            AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                            AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>>                            NULL, NULL,
>> - &adev->gfx.rlc.clear_state_obj);
>> +                         0, &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);
>> @@ -3524,7 +3524,7 @@ static int gfx_v7_0_rlc_init(struct 
>> amdgpu_device *adev)
>>                            AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                            AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>>                            NULL, NULL,
>> -                         &adev->gfx.rlc.cp_table_obj);
>> +                         0, &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);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> index b58d98d..5a10552 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> @@ -1284,7 +1284,7 @@ static int gfx_v8_0_rlc_init(struct 
>> amdgpu_device *adev)
>>                            AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                            AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>>                            NULL, NULL,
>> - &adev->gfx.rlc.clear_state_obj);
>> +                         0, &adev->gfx.rlc.clear_state_obj);
>>               if (r) {
>>                   dev_warn(adev->dev, "(%d) create RLC c bo 
>> failed\n", r);
>>                   gfx_v8_0_rlc_fini(adev);
>> @@ -1327,7 +1327,7 @@ static int gfx_v8_0_rlc_init(struct 
>> amdgpu_device *adev)
>>                            AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
>>                            AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
>>                            NULL, NULL,
>> -                         &adev->gfx.rlc.cp_table_obj);
>> +                         0, &adev->gfx.rlc.cp_table_obj);
>>               if (r) {
>>                   dev_warn(adev->dev, "(%d) create RLC cp table bo 
>> failed\n", r);
>>                   return r;
>> @@ -1394,7 +1394,7 @@ static int gfx_v8_0_mec_init(struct 
>> amdgpu_device *adev)
>>                        mec_hpd_size,
>>                        PAGE_SIZE, true,
>>                        AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
>> -                     &adev->gfx.mec.hpd_eop_obj);
>> +                     0, &adev->gfx.mec.hpd_eop_obj);
>>           if (r) {
>>               dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
>>               return r;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> index 4d7f042..500318d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> @@ -867,7 +867,7 @@ static int gfx_v9_0_mec_init(struct amdgpu_device 
>> *adev)
>>                        mec_hpd_size,
>>                        PAGE_SIZE, true,
>>                        AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
>> -                     &adev->gfx.mec.hpd_eop_obj);
>> +                     0, &adev->gfx.mec.hpd_eop_obj);
>>           if (r) {
>>               dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r);
>>               return r;
>> @@ -910,7 +910,7 @@ static int gfx_v9_0_mec_init(struct amdgpu_device 
>> *adev)
>>               mec_hdr->header.ucode_size_bytes,
>>               PAGE_SIZE, true,
>>               AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
>> -            &adev->gfx.mec.mec_fw_obj);
>> +            0, &adev->gfx.mec.mec_fw_obj);
>>           if (r) {
>>               dev_warn(adev->dev, "(%d) create mec firmware bo 
>> failed\n", r);
>>               return r;
>
>

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-28 14:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-27 19:48 [PATCH 1/2] drm/amdgpu: Add a parameter to amdgpu_bo_create() Yong Zhao
     [not found] ` <1501184886-2450-1-git-send-email-Yong.Zhao-5C7GfCeVMHo@public.gmane.org>
2017-07-28  9:01   ` Christian König
     [not found]     ` <2e8598b7-5382-3800-8502-68d69fe75b3a-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-07-28 14:51       ` Yong Zhao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.