diff options
| author | Christian König <christian.koenig@amd.com> | 2018-10-19 16:55:26 +0200 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2018-11-05 14:21:21 -0500 | 
| commit | a64f784bb14a56bfdfad2dc397dd67e4564e3a29 (patch) | |
| tree | f2e55af233d82fc8365c4a39d59a897998c3081a /drivers/gpu/drm/amd/amdgpu | |
| parent | 62b53b37e4b1500d4eb4624a44ad861cf8d3cd18 (diff) | |
drm/ttm: initialize globals during device init (v2)
Make sure that the global BO state is always correctly initialized.
This allows removing all the device code to initialize it.
v2: fix up vbox (Alex)
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 59 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 1 | 
2 files changed, 2 insertions, 58 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index fda252022b15..31fe85dd0b50 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -61,56 +61,6 @@ static int amdgpu_map_buffer(struct ttm_buffer_object *bo,  static int amdgpu_ttm_debugfs_init(struct amdgpu_device *adev);  static void amdgpu_ttm_debugfs_fini(struct amdgpu_device *adev); -/* - * Global memory. - */ - -/** - * amdgpu_ttm_global_init - Initialize global TTM memory reference structures. - * - * @adev: AMDGPU device for which the global structures need to be registered. - * - * This is called as part of the AMDGPU ttm init from amdgpu_ttm_init() - * during bring up. - */ -static int amdgpu_ttm_global_init(struct amdgpu_device *adev) -{ -	struct drm_global_reference *global_ref; -	int r; - -	/* ensure reference is false in case init fails */ -	adev->mman.mem_global_referenced = false; - -	global_ref = &adev->mman.bo_global_ref.ref; -	global_ref->global_type = DRM_GLOBAL_TTM_BO; -	global_ref->size = sizeof(struct ttm_bo_global); -	global_ref->init = &ttm_bo_global_ref_init; -	global_ref->release = &ttm_bo_global_ref_release; -	r = drm_global_item_ref(global_ref); -	if (r) { -		DRM_ERROR("Failed setting up TTM BO subsystem.\n"); -		goto error_bo; -	} - -	mutex_init(&adev->mman.gtt_window_lock); - -	adev->mman.mem_global_referenced = true; - -	return 0; - -error_bo: -	return r; -} - -static void amdgpu_ttm_global_fini(struct amdgpu_device *adev) -{ -	if (adev->mman.mem_global_referenced) { -		mutex_destroy(&adev->mman.gtt_window_lock); -		drm_global_item_unref(&adev->mman.bo_global_ref.ref); -		adev->mman.mem_global_referenced = false; -	} -} -  static int amdgpu_invalidate_caches(struct ttm_bo_device *bdev, uint32_t flags)  {  	return 0; @@ -1714,14 +1664,10 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)  	int r;  	u64 vis_vram_limit; -	/* initialize global references for vram/gtt */ -	r = amdgpu_ttm_global_init(adev); -	if (r) { -		return r; -	} +	mutex_init(&adev->mman.gtt_window_lock); +  	/* No others user of address space so set it to 0 */  	r = ttm_bo_device_init(&adev->mman.bdev, -			       adev->mman.bo_global_ref.ref.object,  			       &amdgpu_bo_driver,  			       adev->ddev->anon_inode->i_mapping,  			       DRM_FILE_PAGE_OFFSET, @@ -1878,7 +1824,6 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)  	ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_GWS);  	ttm_bo_clean_mm(&adev->mman.bdev, AMDGPU_PL_OA);  	ttm_bo_device_release(&adev->mman.bdev); -	amdgpu_ttm_global_fini(adev);  	adev->mman.initialized = false;  	DRM_INFO("amdgpu: ttm finalized\n");  } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h index e114f209b701..b5b2d101f7db 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h @@ -39,7 +39,6 @@  #define AMDGPU_GTT_NUM_TRANSFER_WINDOWS	2  struct amdgpu_mman { -	struct ttm_bo_global_ref        bo_global_ref;  	struct ttm_bo_device		bdev;  	bool				mem_global_referenced;  	bool				initialized; | 
