Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e9244ff authored by Michel Dänzer's avatar Michel Dänzer Committed by Alex Deucher
Browse files

drm/amdgpu: Refactor amdgpu_vram_mgr_bo_invisible_size helper



Preparation for the following fix, no functional change intended.

Cc: stable@vger.kernel.org
Signed-off-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 34d6d599
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -762,8 +762,7 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
	domain = amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type);
	domain = amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type);
	if (domain == AMDGPU_GEM_DOMAIN_VRAM) {
	if (domain == AMDGPU_GEM_DOMAIN_VRAM) {
		adev->vram_pin_size += amdgpu_bo_size(bo);
		adev->vram_pin_size += amdgpu_bo_size(bo);
		if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS)
		adev->invisible_pin_size += amdgpu_vram_mgr_bo_invisible_size(bo);
			adev->invisible_pin_size += amdgpu_bo_size(bo);
	} else if (domain == AMDGPU_GEM_DOMAIN_GTT) {
	} else if (domain == AMDGPU_GEM_DOMAIN_GTT) {
		adev->gart_pin_size += amdgpu_bo_size(bo);
		adev->gart_pin_size += amdgpu_bo_size(bo);
	}
	}
@@ -793,8 +792,7 @@ int amdgpu_bo_unpin(struct amdgpu_bo *bo)


	if (bo->tbo.mem.mem_type == TTM_PL_VRAM) {
	if (bo->tbo.mem.mem_type == TTM_PL_VRAM) {
		adev->vram_pin_size -= amdgpu_bo_size(bo);
		adev->vram_pin_size -= amdgpu_bo_size(bo);
		if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS)
		adev->invisible_pin_size -= amdgpu_vram_mgr_bo_invisible_size(bo);
			adev->invisible_pin_size -= amdgpu_bo_size(bo);
	} else if (bo->tbo.mem.mem_type == TTM_PL_TT) {
	} else if (bo->tbo.mem.mem_type == TTM_PL_TT) {
		adev->gart_pin_size -= amdgpu_bo_size(bo);
		adev->gart_pin_size -= amdgpu_bo_size(bo);
	}
	}
+1 −0
Original line number Original line Diff line number Diff line
@@ -73,6 +73,7 @@ bool amdgpu_gtt_mgr_has_gart_addr(struct ttm_mem_reg *mem);
uint64_t amdgpu_gtt_mgr_usage(struct ttm_mem_type_manager *man);
uint64_t amdgpu_gtt_mgr_usage(struct ttm_mem_type_manager *man);
int amdgpu_gtt_mgr_recover(struct ttm_mem_type_manager *man);
int amdgpu_gtt_mgr_recover(struct ttm_mem_type_manager *man);


u64 amdgpu_vram_mgr_bo_invisible_size(struct amdgpu_bo *bo);
uint64_t amdgpu_vram_mgr_usage(struct ttm_mem_type_manager *man);
uint64_t amdgpu_vram_mgr_usage(struct ttm_mem_type_manager *man);
uint64_t amdgpu_vram_mgr_vis_usage(struct ttm_mem_type_manager *man);
uint64_t amdgpu_vram_mgr_vis_usage(struct ttm_mem_type_manager *man);


+16 −0
Original line number Original line Diff line number Diff line
@@ -96,6 +96,22 @@ static u64 amdgpu_vram_mgr_vis_size(struct amdgpu_device *adev,
		adev->gmc.visible_vram_size : end) - start;
		adev->gmc.visible_vram_size : end) - start;
}
}


/**
 * amdgpu_vram_mgr_bo_invisible_size - CPU invisible BO size
 *
 * @bo: &amdgpu_bo buffer object (must be in VRAM)
 *
 * Returns:
 * How much of the given &amdgpu_bo buffer object lies in CPU invisible VRAM.
 */
u64 amdgpu_vram_mgr_bo_invisible_size(struct amdgpu_bo *bo)
{
	if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS)
		return amdgpu_bo_size(bo);

	return 0;
}

/**
/**
 * amdgpu_vram_mgr_new - allocate new ranges
 * amdgpu_vram_mgr_new - allocate new ranges
 *
 *